home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 5791-.end / dmg-6001 / ka9qnos.tx1 < prev    next >
Text File  |  1992-06-01  |  180KB  |  3,896 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                        NET User Reference Manual (NOS Version)
  11.  
  12.                                    Phil Karn, KA9Q
  13.  
  14.  
  15.  
  16.  
  17.           1.  The NET.EXE Program
  18.           The  MS-DOS  executable  file net.exe provides Internet (TCP/IP),
  19.           NET/ROM and AX.25 facilities.  Because it has an internal  multi-
  20.           tasking  operating  system,  net.exe  can act simultaneously as a
  21.           client, a server and a packet switch for all three sets of proto-
  22.           cols.  That  is, while a local user accesses remote services, the
  23.           system can also provide those same services to remote users while
  24.           also  switching  IP, NET/ROM and AX.25 packets and frames between
  25.           other client and server nodes.
  26.           The keyboard and display is used by the local operator to control
  27.           both host and gateway level functions, for which a number of com-
  28.           mands are provided.
  29.  
  30.           1.1.  Installation
  31.           Net.exe uses the following directory structure:
  32.                /spool
  33.                /spool/help
  34.                /spool/mail
  35.                /spool/mqueue
  36.                /spool/rqueue
  37.                /spool/news
  38.  
  39.           By default, the /spool directory is placed in the root  directory
  40.           of  the  current  drive. However, a subdirectory may be specified
  41.           with the -d command-line option described below. If  a  subdirec-
  42.           tory  is  given,  the alias, autoexec.net, dialer, domain.txt and
  43.           ftpusers configuration files must also be located there.
  44.           The "/spool" directory and its sub-directories are  used  by  the
  45.           bbs,  SMTP  and  NNTP services.  The areas, forward.bbs, history,
  46.           mail.log, rewrite and signatur configuration  files  are  located
  47.           here.
  48.           The  alias,  forward.bbs  and  rewrite files are described in the
  49.           document "maildoc", which should be found at the same location as
  50.           this file.
  51.  
  52.           1.2.  net [-b] [-s <sockets>] [-d <directory>] [<startup file>]
  53.  
  54.           1.2.1.  -b
  55.           The  -b  option specifies the use of BIOS for console output; the
  56.           default is to write directly to the  video  display  buffer.  Use
  57.           this option if you are running under a windowing package and have
  58.           trouble with output "bleeding through" on top of other windows.
  59.  
  60.  
  61.  
  62.  
  63.  
  64.                                                           May 28, 1991
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                       - 2 -
  71.  
  72.  
  73.           1.2.2.  -s
  74.           The -s option specifies the size of the socket array to be  allo-
  75.           cated  within  net.exe. This limits the number of network connec-
  76.           tions that may exist simultaneously.  The default is 40.
  77.  
  78.           1.2.3.  -d
  79.           The -d option allows the user to specify a directory for the con-
  80.           figuration  and spool files; it defaults to the root directory of
  81.           the system.
  82.  
  83.           1.2.4.  Startup file
  84.           After all command-line options, the name of a startup file may be
  85.           specified.   If no startup file is specified, net.exe attempts to
  86.           open a file named autoexec.net in the configuration directory  of
  87.           the  current  drive.  If the file exists, it is read and executed
  88.           as though its contents were typed on  the  console  as  commands.
  89.           (See the Commands chapter.)  This feature is useful for attaching
  90.           communication  interfaces,  configuring  network  addresses,  and
  91.           starting the various services.
  92.  
  93.           2.  Console modes
  94.           The console may be in one of two modes: command mode and converse
  95.           mode.  In command mode, the prompt net> is displayed and  any  of
  96.           the  commands  described  in the Commands chapter may be entered.
  97.           In converse mode, keyboard input is processed  according  to  the
  98.           current session.
  99.           Sessions come in many types, including Telnet, FTP, AX25, NETROM,
  100.           Ping, More, Hopcheck and Tip.  In a Telnet, AX25, NETROM, or  Tip
  101.           session, keyboard input is sent to the remote system and any out-
  102.           put from the remote system is displayed on the console.  In a FTP
  103.           session, keyboard input is first examined to see if it is a known
  104.           local command; if so it is  executed  locally.   If  not,  it  is
  105.           "passed  through" to the remote FTP server.  (See the FTP Subcom-
  106.           mands chapter).  In a Ping session the user may test the path  to
  107.           a  remote  site,  and  in  a More session, the user may examine a
  108.           local file. A Hopcheck session is used to trace the path taken by
  109.           packets  to reach a specified destination. A Tip session provides
  110.           a "dumb terminal" service that bypasses all network protocols.
  111.           The keyboard also has cooked and raw states.   In  cooked  state,
  112.           input  is line-at-a-time; the user may use the line editing char-
  113.           acters ^U, ^R and backspace to erase the line, redisplay the line
  114.           and  erase  the  last  character,  respectively.   Hitting either
  115.           return or line feed passes the complete line up to  the  applica-
  116.           tion.   In raw state, each character is immediately passed to the
  117.           application as it is typed.
  118.           The keyboard is always in cooked state in command  mode.   It  is
  119.           also  cooked in converse mode on an AX25, FTP or NET/ROM session.
  120.           In a Telnet session it depends on  whether  the  remote  end  has
  121.           issued  (and  the  local  end  has accepted) the Telnet WILL ECHO
  122.           option (see the echo command).
  123.           On the IBM-PC, the user may escape back to command mode  by  hit-
  124.           ting  the  F10  key.   On  other systems, the user must enter the
  125.           escape character, which is by default control-]  (hex  1d,  ASCII
  126.           GS).  (Note that this is distinct from the ASCII character of the
  127.  
  128.  
  129.  
  130.                                                           May 28, 1991
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                       - 3 -
  137.  
  138.  
  139.           same name).  The escape character can be changed (see the  escape
  140.           command).
  141.           In  the  IBM  PC  version,  each  session  (including the command
  142.           "session") has its own screen.  When a new  session  is  created,
  143.           the command display is saved in memory and the screen is cleared.
  144.           When the command escape key (usually F10)  is  hit,  the  current
  145.           session screen is saved and the command screen is restored.  When
  146.           a session is resumed,  its  screen  is  restored  exactly  as  it
  147.           appeared when it was last current.
  148.  
  149.           3.  Commands
  150.           This  chapter  describes the commands recognized in command mode,
  151.           or within a startup file such as autoexec.net.  These  are  given
  152.           in the following notation:
  153.                command
  154.                command literal_parameter
  155.                command subcommand <parameter>
  156.                command [<optional_parameter>]
  157.                command a | b
  158.           Many  commands  take  subcommands  or  parameters,  which  may be
  159.           optional or required. In general, if  a  required  subcommand  or
  160.           parameter  is omitted, an error message will summarize the avail-
  161.           able subcommands or required parameters.  (Giving a '?' in  place
  162.           of the subcommand will also generate the message.  This is useful
  163.           when the command word alone is a valid  command.)  If  a  command
  164.           takes  an  optional  value parameter, issuing the command without
  165.           the parameter generally displays the current value of  the  vari-
  166.           able.  (Exceptions  to this rule are noted in the individual com-
  167.           mand descriptions.)
  168.           Two or more parameters separated  by  vertical  bar(s)  denote  a
  169.           choice  between  the  specified  values.  Optional parameters are
  170.           shown enclosed in [brackets], and a parameter enclosed in  <angle
  171.           brackets> should be replaced with an actual value or string.  For
  172.           example, the notation <hostid> denotes an actual host or gateway,
  173.           which  may  be  specified  in  one  of  two ways: as a numeric IP
  174.           address in dotted decimal notation (eg. 44.0.0.1), or as  a  sym-
  175.           bolic name listed in the file domain.txt.
  176.           All  commands  and  many subcommands may be abbreviated. You only
  177.           need type enough of a  command's  name  to  distinguish  it  from
  178.           others  that  begin  with the same series of letters. Parameters,
  179.           however, must be typed in full.
  180.           Certain FTP subcommands (eg. put, get, dir, etc)  are  recognized
  181.           only  in converse mode with the appropriate FTP session; they are
  182.           not recognized in command mode.  (See the FTP  Subcommands  chap-
  183.           ter.)
  184.           Note  that  certain  commands  may  have been configured out of a
  185.           given copy of net.exe to save disk and memory.  If a command  has
  186.           been  configured  out, it will not appear in the list produced by
  187.           the "?" command, nor will it be recognized by the command  inter-
  188.           preter.
  189.  
  190.           3.1.  <CR>
  191.           Entering  a  carriage  return  (empty line) while in command mode
  192.           puts you in converse mode with the current session. If  there  is
  193.  
  194.  
  195.  
  196.                                                           May 28, 1991
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                       - 4 -
  203.  
  204.  
  205.           no current session, net.exe remains in command mode.
  206.  
  207.           3.2.  !
  208.           An alias for the shell command.
  209.  
  210.           3.3.  #
  211.           Commands  starting  with  the  hash mark (#) are ignored. This is
  212.           mainly useful for comments in the autoexec.net file.
  213.  
  214.           3.4.  abort [<session #>]
  215.           Abort a FTP get, put or dir  operation  in  progress.  If  issued
  216.           without  an  argument, the current session is aborted. (This com-
  217.           mand works only on FTP sessions.) When receiving  a  file,  abort
  218.           simply  resets the data connection; the next incoming data packet
  219.           will generate a TCP RST (reset)  response  to  clear  the  remote
  220.           server.   When  sending  a  file, abort sends a premature end-of-
  221.           file. Note that in both cases abort will leave a partial copy  of
  222.           the  file on the destination machine, which must be removed manu-
  223.           ally if it is unwanted.
  224.  
  225.           3.5.  arp
  226.           Display the  Address  Resolution  Protocol  table  that  maps  IP
  227.           addresses to their subnet (link) addresses on subnetworks capable
  228.           of broadcasting.  For each IP address entry the subnet type  (eg.
  229.           Ethernet, AX.25), subnet address and time to expiration is shown.
  230.           If the link address is currently unknown, the number of IP  data-
  231.           grams awaiting resolution is also shown.
  232.  
  233.           3.5.1.   arp  add  <hostid>  ethernet | ax25 <ethernet address> |
  234.           <ax25_address>
  235.           Add a permanent entry to the table. It will not time out as  will
  236.           an  automatically-created entry, but must be removed with the arp
  237.           drop command.
  238.  
  239.           3.5.2.  arp publish <hostid> ethernet | ax25 <ethernet address> |
  240.           <ax25_address>
  241.           This  command  is similar to the arp add command, but system will
  242.           also respond to any ARP request it sees on the network that seeks
  243.           the specified address.  Use this feature with great care.
  244.  
  245.           3.5.3.  arp drop <hostid> ax25 | ethernet
  246.           Remove the specified entry from the ARP table.
  247.  
  248.           3.5.4.  arp flush
  249.           Drop  all  automatically-created entries in the ARP table. Perma-
  250.           nent entries are not affected.
  251.  
  252.           3.6.  asystat
  253.           Display statistics on attached asynchronous communications inter-
  254.           faces  (8250  or  16550A), if any. The display for each port con-
  255.           sists of three lines. The first line gives the port label and the
  256.           configuration  flags; these indicate whether the port is a 16550A
  257.           chip, the trigger character if any, whether CTS flow  control  is
  258.           enabled,  whether  RLSD (carrier detect) line control is enabled,
  259.  
  260.  
  261.  
  262.                                                           May 28, 1991
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                       - 5 -
  269.  
  270.  
  271.           and the speed in bits per second.  (Receiving the trigger charac-
  272.           ter causes the driver to signal upper layer software that data is
  273.           ready; it is automatically set to the appropriate frame end char-
  274.           acter for SLIP, PPP and NRS lines.)
  275.           The  second  line of the status display shows receiver (RX) event
  276.           counts: the total number of receive interrupts, received  charac-
  277.           ters,  receiver  overruns (lost characters) and the receiver high
  278.           water mark.  The high water mark is the maximum number of charac-
  279.           ters ever read from the device during a single interrupt. This is
  280.           useful for monitoring system  interrupt  latency  margins  as  it
  281.           shows  how close the port hardware has come to overflowing due to
  282.           the inability of the CPU to respond to a  receiver  interrupt  in
  283.           time.  8250  chips have no FIFO, so the high water mark cannot go
  284.           higher than 2 before overruns occur. The  16550A  chip,  however,
  285.           has  a 16-byte receive FIFO which the software programs to inter-
  286.           rupt the CPU when the FIFO is one-quarter full.  The  high  water
  287.           mark  should  typically  be  4 or 5 when a 16550A is used; higher
  288.           values indicate that the CPU has  at  least  once  been  slow  to
  289.           respond to a receiver interrupt.
  290.           When  the  16550A  is used, a count of FIFO timeouts is also dis-
  291.           played on the RX status line. These are  generated  automatically
  292.           by the 16550A when three character intervals go by with more than
  293.           0 but less than 4 characters in the FIFO.  Since  the  characters
  294.           that  make  up a SLIP or NRS frame are normally sent at full line
  295.           speed, this count will usually be a lower bound on the number  of
  296.           frames received on the port, as only the last fragment of a frame
  297.           generally results in a timeout (and then only when the  frame  is
  298.           not a multiple of 4 bytes long.)
  299.           Finally,  the software fifo overruns and high water mark are dis-
  300.           played.  These indicate whether the <bufsize>  parameter  on  the
  301.           attach  command  needs  to  be  adjusted (see the Attach Commands
  302.           chapter).
  303.           The third line shows transmit (TX) statistics, including a  total
  304.           count  of transmit interrupts, transmitted characters, the length
  305.           of the transmit queue in bytes, the number of status  interrupts,
  306.           and the number of THRE timeouts.  The status interrupt count will
  307.           be zero unless CTS flow control or RLSD  line  control  has  been
  308.           enabled.   The  THRE  timeout  is a stopgap measure to catch lost
  309.           transmit interrupts, which seem to happen when there is a lot  of
  310.           activity (ideally, this will be zero).
  311.  
  312.           3.7.  attach <hw type> ...
  313.           Configure   and  attach  a  hardware  interface  to  the  system.
  314.           Detailed instructions for each driver are in the Attach  Commands
  315.           chapter.   An  easy  way  to  obtain  a summary of the parameters
  316.           required for a given device is to issue a partial attach  command
  317.           (eg.  attach  packet).   This produces a usage message giving the
  318.           complete command format.
  319.  
  320.           3.8.  ax25 ...
  321.           These commands are used to control the AX.25 amateur  radio  link
  322.           level protocol.
  323.  
  324.  
  325.  
  326.  
  327.  
  328.                                                           May 28, 1991
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                       - 6 -
  335.  
  336.  
  337.           3.8.1.  ax25 blimit [<count>]
  338.           Display  or  set  the AX25 retransmission backoff limit. Normally
  339.           each successive AX25 retransmission is delayed by twice the value
  340.           of the previous interval; this is called binary exponential back-
  341.           off.  When the backoff reaches the blimit setting it is  held  at
  342.           that  value, which defaults to 30.  To prevent the possibility of
  343.           "congestive collapse" on a loaded channel, blimit should  be  set
  344.           at  least  as high as the number of stations sharing the channel.
  345.           Note that this is applicable only on actual AX25 connections;  UI
  346.           frames will never be retransmitted by the AX25 layer.
  347.  
  348.           3.8.2.  ax25 dest
  349.           Display  the  AX25 destination monitoring database. Each callsign
  350.           seen in the destination field of an AX25 frame is displayed (most
  351.           recent  first), along with the time since it was last referenced.
  352.           The time since the same callsign was  last  seen  in  the  source
  353.           field  of  an  AX25 frame on the same interface is also shown. If
  354.           the callsign has never been seen in the source field of a  frame,
  355.           then  this field is left blank. (This indicates that the destina-
  356.           tion is either a multicast address or a "hidden station".)
  357.  
  358.           3.8.3.  ax25 digipeat [on | off]
  359.           Display or set the digipeater enable flag.
  360.  
  361.           3.8.4.  ax25 flush
  362.           Clear the AX.25 "heard" list (see ax25 heard).
  363.  
  364.           3.8.5.  ax25 heard
  365.           Display the AX.25 "heard" list. For each interface that  is  con-
  366.           figured  to use AX.25, a list of all callsigns heard through that
  367.           interface is shown, along with a count of the number  of  packets
  368.           heard  from  each station and the interval, in hr:min:sec format,
  369.           since each station was last heard.  The list is sorted  in  most-
  370.           recently-heard order.  The local station is included in the list-
  371.           ing; the packet count reflects the number of packets transmitted.
  372.           This  count will be correct whether or not the modem monitors its
  373.           own transmissions.
  374.  
  375.           3.8.6.  ax25 irtt [<milliseconds>]
  376.           Display or set the initial value of smoothed round trip  time  to
  377.           be  used  when  a new AX25 connection is created. The value is in
  378.           milliseconds.  The actual round trip time will be learned by mea-
  379.           surement once the connection has been established.
  380.  
  381.           3.8.7.  ax25 kick <axcb>
  382.           Force a retransmission on the specified AX.25 control block.
  383.  
  384.           3.8.8.  ax25 maxframe [<count>]
  385.           Establish  the  maximum  number of frames that will be allowed to
  386.           remain unacknowledged at one time on new AX.25 connections.  This
  387.           number cannot be greater than 7.
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.                                                           May 28, 1991
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                       - 7 -
  401.  
  402.  
  403.           3.8.9.  ax25 mycall [<call>]
  404.           Display  or  set the local AX.25 address.  The standard format is
  405.           used (eg. KA9Q-0 or WB6RQN-5).  This command must be given before
  406.           any attach commands using AX.25 mode are given.
  407.  
  408.           3.8.10.  ax25 paclen [<size>]
  409.           Limit the size of I-fields on new AX.25 connections.  If IP data-
  410.           grams or fragments larger than this are transmitted, they will be
  411.           transparently  fragmented at the AX.25 level, sent as a series of
  412.           I frames, and reassembled back into a  complete  IP  datagram  or
  413.           fragment  at  the other end of the link. To have any effect on IP
  414.           datagrams, this parameter should be less than or equal to the MTU
  415.           of the associated interface.
  416.  
  417.           3.8.11.  ax25 pthresh [<size>]
  418.           Display  or  set the poll threshold to be used for new AX.25 Ver-
  419.           sion 2 connections.  The poll threshold  controls  retransmission
  420.           behavior as follows. If the oldest unacknowledged I-frame size is
  421.           less than the poll threshold, it will be sent with the  poll  (P)
  422.           bit  set if a timeout occurs.  If the oldest unacked I-frame size
  423.           is equal to or greater than the  threshold,  then  a  RR  or  RNR
  424.           frame,  as  appropriate,  with the poll bit set will be sent if a
  425.           timeout occurs.
  426.           The idea behind the poll threshold is that the extra time  needed
  427.           to  send  a  "small"  I-frame instead of a supervisory frame when
  428.           polling after a timeout is small, and since there's a good chance
  429.           the  I-frame  will  have to be sent anyway (i.e., if it were lost
  430.           previously) then you might as well send it as the  poll.  But  if
  431.           the I-frame is large, send a supervisory (RR/RNR) poll instead to
  432.           determine first if retransmitting the  oldest  unacknowledged  I-
  433.           frame  is necessary; the timeout might have been caused by a lost
  434.           acknowledgement.  This is obviously  a  tradeoff,  so  experiment
  435.           with  the  poll  threshold setting. The default is 128 bytes, one
  436.           half the default value of paclen.
  437.  
  438.           3.8.12.  ax25 reset <axcb>
  439.           Delete the  AX.25  connection  control  block  at  the  specified
  440.           address.
  441.  
  442.           3.8.13.  ax25 retry [<count>]
  443.           Limit   the  number  of  successive  unsuccessful  retransmission
  444.           attempts on new AX.25 connections. If  this  limit  is  exceeded,
  445.           link  re-establishment  is  attempted. If this fails retry times,
  446.           then the connection is abandoned and all queued data is  deleted.
  447.           A  value  of  0  means  "infinity";  the retry limit is disabled.
  448.           retry
  449.  
  450.           3.8.14.  ax25 route
  451.           Display the AX.25 routing table that specifies the digipeaters to
  452.           be used in reaching a given station.
  453.  
  454.           3.8.14.1.  ax25 route add <target> [digis ... ]
  455.           Add an entry to the AX.25 routing table.  An automatic ax25 route
  456.           add is executed if digipeaters are specified in an  AX25  connect
  457.  
  458.  
  459.  
  460.                                                           May 28, 1991
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                       - 8 -
  467.  
  468.  
  469.           command, or if a connection is received from a remote station via
  470.           digipeaters. Such automatic routing table entries won't  override
  471.           locally created entries, however.
  472.  
  473.           3.8.14.2.  ax25 route drop <target>
  474.           Drop an entry from the AX.25 routing table.
  475.  
  476.           3.8.15.  ax25 status [<axcb>]
  477.           Without  an  argument,  display  a one-line summary of each AX.25
  478.           control block.  If the address of a particular control  block  is
  479.           specified,  the contents of that control block are dumped in more
  480.           detail. Note that the send queue  units  are  frames,  while  the
  481.           receive queue units are bytes.
  482.  
  483.           3.8.16.  ax25 t3 [<milliseconds>]
  484.           Display  or  set  the  AX.25 idle "keep alive" timer. Value is in
  485.           milliseconds.
  486.  
  487.           3.8.17.  ax25 version [1 | 2]
  488.           Display or set the version of the AX.25 protocol  to  attempt  to
  489.           use  on  new connections. The default is 1 (the version that does
  490.           not use the poll/final bits).
  491.  
  492.           3.8.18.  ax25 window [<size>]
  493.           Set the number of bytes that can be pending on an  AX.25  receive
  494.           queue  beyond  which I frames will be answered with RNR (Receiver
  495.           Not Ready) responses.  This presently applies only  to  suspended
  496.           interactive  AX.25  sessions,  since incoming I-frames containing
  497.           network (IP, NET/ROM) packets are  always  processed  immediately
  498.           and  are not placed on the receive queue.  However, when an AX.25
  499.           connection carries both interactive and network  packet  traffic,
  500.           an  RNR  generated because of backlogged interactive traffic will
  501.           also stop network packet traffic from being sent.
  502.  
  503.           3.9.  BOOTP
  504.           The bootp client and server are added to KA9Q  to  provide  auto-
  505.           matic configuration capabilities.  With this suite of extensions,
  506.           a KA9Q host can automatically configure its  IP  address,  subnet
  507.           mask, broadcast address, host name, the default gateway, the name
  508.           servers, and default boot file.  This simplifies host  configura-
  509.           tion.
  510.           The  bootp  server  supports dynamic IP address assignment.  If a
  511.           bootp request is made by a host to the  server,  and  the  server
  512.           doesn't have a static record for the PC making the request, an IP
  513.           address may be assigned from a list of dynamic  addresses.   This
  514.           simplifies  server  configuration, so that machines don't require
  515.           prior IP address assignment.  This is useful in environments such
  516.           as university dormitories, where network service is provided, and
  517.           the computers configurations change frequently.  When the  server
  518.           list of free addresses reaches a minimum threshold, it will begin
  519.           attempts to reclaim the address.
  520.           The bootp client and server code are written according to RFC 951
  521.           and 1048.
  522.  
  523.  
  524.  
  525.  
  526.                                                           May 28, 1991
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                       - 9 -
  533.  
  534.  
  535.           3.9.1.  bootp  [<net_name>] [silent] [noisy]
  536.           Send  a  request  to  a  bootp  server, and wait for a reply.  On
  537.           receipt of the server reply, the information is used to configure
  538.           the host.  If a reply is not received, the command will time out.
  539.           Without arguments, bootp sends a request to the  first  interface
  540.           in the interface list.
  541.           This command requires that there exist a routing entry for the IP
  542.           broadcast address 255.255.255.255  pointing  to  the  appropriate
  543.           interface.  If  the interface uses ARP, there must also be an ARP
  544.           entry that maps that address to the appropriate link level broad-
  545.           cast  address.   For  example,  if you have an Ethernet interface
  546.           named "ethernet", use the following  commands  before  the  bootp
  547.           command:
  548.              route add 255.255.255.255 ethernet
  549.  
  550.              arp add 255.255.255.255 ether ff:ff:ff:ff:ff:ff
  551.           The following bootp subcommands are available:
  552.  
  553.           3.9.1.1.  bootp <net_name>
  554.           Send a request over the specified network.
  555.  
  556.           3.9.1.2.  bootp silent
  557.           Set bootp so that it will not print the configuration.
  558.  
  559.           3.9.1.3.  bootp noisy
  560.           Set bootp so that it will print the configuration.
  561.  
  562.           3.9.2.   bootpd  [start]  [stop]  [dns]  [dynip]  [host] [rmhost]
  563.           [homedir] [defaultfile] [logfile] [logscreen]
  564.           This command starts and stops the bootp server, and sets the con-
  565.           figuration  for  the  information it will provide in replies.  If
  566.           the file bootptab exists, it will read the file for configuration
  567.           information.   On  receipt  of  a  request,  if bootptab has been
  568.           changed, the server will reread the file for the changed configu-
  569.           ration.  The following subcommands are available:
  570.  
  571.           3.9.2.1.  bootpd start
  572.           Start  the  bootp server, reading from the file bootptab for con-
  573.           figuration information.
  574.  
  575.           3.9.2.2.  bootpd stop
  576.           Stop the bootp server.
  577.  
  578.           3.9.2.3.  bootpd dns
  579.           Print the address of the domain name servers supplied in replies.
  580.  
  581.           3.9.2.4.  bootpd dns <IP addr of domain name server>...
  582.           Set the addresses.
  583.  
  584.           3.9.2.5.  bootpd dynip
  585.           Print the range and use of the dynamic IP address.
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.                                                           May 28, 1991
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                                      - 10 -
  599.  
  600.  
  601.           3.9.2.6.  bootpd dynip <net_name> <IP address> <IP address>
  602.           Set  the  range  of  IP  address  to be used for network netname.
  603.           These address will be supplied to hosts that are not found in the
  604.           static record.
  605.  
  606.           3.9.2.7.  bootpd dynip <netname> off
  607.           Turn off dynamic ip for network interface netname.
  608.  
  609.           3.9.2.8.  bootpd host
  610.           Print the information in the static host table.
  611.  
  612.           3.9.2.9.    bootpd   host   <hostname>   ethernet|ax25  <ethernet
  613.           addr>|<ax25 addr> <ip addr> [boot file]
  614.           Add a host to the host table.  The LANSTAR packet drivers provide
  615.           an Ethernet interface to upper layer applications, so configure a
  616.           LANSTAR network as an Ethernet.
  617.  
  618.           3.9.2.10.  bootpd rmhost <hostname>
  619.           Remove host <hostname> from the static host tables.
  620.  
  621.           3.9.2.11.  bootpd homedir
  622.           Print the default directory for the bootp file name used when the
  623.           bootp  file  is not specified in the static host record, and when
  624.           dynamic addresses are supplied.  Default is the null string.
  625.  
  626.           3.9.2.12.  bootpd homedir <directory name>
  627.           Set the default directory.
  628.  
  629.           3.9.2.13.  bootpd defaultfile
  630.           Print the default file for the bootp  file  name  used  when  the
  631.           bootp  file  is not specified in the static host record, and when
  632.           dynamic addresses are supplied.  Default is the null string.
  633.  
  634.           3.9.2.14.  bootpd defaultfile <filename>
  635.           Set the default file.
  636.  
  637.           3.9.2.15.  bootpd logfile
  638.           Print the status of logging to a log file.
  639.  
  640.           3.9.2.16.  bootpd logfile <filename | default> on|off
  641.           Sets the file for logging to <filename> or the default, bootplog.
  642.           Turn logging to that file on or off.
  643.  
  644.           3.9.2.17.  bootpd logscreen
  645.           Print the status of logging to the screen.
  646.  
  647.           3.9.2.18.  bootpd logscreen on|off
  648.           Turn logging to the screen on or off.
  649.  
  650.           3.10.  cd [<dirname>]
  651.           Change  the  current  working directory, and display the new set-
  652.           ting.  Without an argument, cd simply displays the current direc-
  653.           tory without change.  The pwd command is an alias for cd.
  654.  
  655.  
  656.  
  657.  
  658.                                                           May 28, 1991
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                      - 11 -
  665.  
  666.  
  667.           3.11.  close [<session>]
  668.           Close  the specified session; without an argument, close the cur-
  669.           rent session.  On an AX.25 session, this command initiates a dis-
  670.           connect.   On  a  FTP or Telnet session, this command sends a FIN
  671.           (i.e., initiates a close) on the session's TCP connection.   This
  672.           is an alternative to asking the remote server to initiate a close
  673.           (QUIT to FTP, or the logout command appropriate  for  the  remote
  674.           system  in  the  case of Telnet).  When either FTP or Telnet sees
  675.           the incoming half of a TCP  connection  close,  it  automatically
  676.           responds  by  closing the outgoing half of the connection.  Close
  677.           is more graceful than the reset  command,  in  that  it  is  less
  678.           likely to leave the remote TCP in a "half-open" state.
  679.  
  680.           3.12.  connect <iface> <callsign> [<digipeater> ... ]
  681.           Initiate  a  "vanilla"  AX.25  session to the specified call sign
  682.           using the specified interface. Data sent on this session goes out
  683.           in  conventional AX.25 packets with no upper layer protocol.  The
  684.           de-facto presentation standard  format  is  used,  in  that  each
  685.           packet  holds  one line of text, terminated by a carriage return.
  686.           A single AX.25 connection may be used  for  terminal-to-terminal,
  687.           IP  and  NET/ROM  traffic.  The three types of data are automati-
  688.           cally separated by their AX.25 Level 3 Protocol IDs.
  689.           Up to 7 optional digipeaters may be given; note that the word via
  690.           is  NOT  needed. If digipeaters are specified, they are automati-
  691.           cally added to the AX25 routing table as though  the  ax25  route
  692.           add command had been given before issuing the connect command.
  693.  
  694.           3.13.  delete <filename>
  695.           Delete a filename in the current working directory.
  696.  
  697.           3.14.  detach <iface>
  698.           Detach  a  previously  attached interface from the system. All IP
  699.           routing table entries referring to this  interface  are  deleted,
  700.           and  forwarding  references by any other interface to this inter-
  701.           face are removed.
  702.  
  703.           3.15.  dialer <iface> <seconds> <hostid> <pings> <dialer-file>
  704.           Setup an autodialer session  for  the  interface.   Whenever  the
  705.           interface  is  idle for the interval in <seconds>, the autodialer
  706.           will ping the <hostid>.  If there  is  no  answer  after  <pings>
  707.           attempts,  the  autodialer will execute the special commands con-
  708.           tained in the <dialer-file>.
  709.           If the interval in <seconds> is zero, a previous  dialer  command
  710.           process  will  be removed.  If the number of <pings> is zero, the
  711.           <dialer-file> will be executed without pinging the <hostid>.
  712.           The file may have any valid name, and must be located in the con-
  713.           figuration  directory (see the Installion section).  The commands
  714.           in the file are described in the Dialer Subcommands chapter.
  715.  
  716.           3.16.  dir [<dirname>]
  717.           List the contents of the specified directory on the  console.  If
  718.           no  argument is given, the current directory is listed. Note that
  719.           this command works by first listing the directory into  a  tempo-
  720.           rary  file, and then creating a more session to display it. After
  721.  
  722.  
  723.  
  724.                                                           May 28, 1991
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                                      - 12 -
  731.  
  732.  
  733.           this completes, the temporary file is deleted.
  734.  
  735.           3.17.  disconnect [<session #>]
  736.           An alias for the close command (for the benefit of AX.25  users).
  737.  
  738.           3.18.  domain ...
  739.           These  commands control the operation of the Internet Domain Name
  740.           Service (DNS).
  741.  
  742.           3.18.1.  domain addserver <hostid>
  743.           Add one or more  domain  name  server(s)  to  the  list  of  name
  744.           servers.
  745.  
  746.           3.18.2.  domain dropserver <hostid>
  747.           Remove  one  or  more domain name server(s) from the list of name
  748.           servers.
  749.  
  750.           3.18.3.  domain listservers
  751.           List the currently configured domain  name  servers,  along  with
  752.           statistics  on  how  many queries and replies have been exchanged
  753.           with each one, response times, etc.
  754.  
  755.           3.18.4.  domain query <hostid>
  756.           Send a query to a domain server asking for all  resource  records
  757.           associated with this <hostid>, and list the records.
  758.  
  759.           3.18.5.  domain retry [<count>]
  760.           Display or set the number of attempts to reach each server on the
  761.           list during one call to the resolver.  If this count is exceeded,
  762.           a  failure  indication  is  returned.  If set to 0, the list will
  763.           cycle forever; this may be useful for unattended operation.   The
  764.           default is 3.
  765.  
  766.           3.18.6.  domain suffix [<domain suffix>]
  767.           Display  or specify the default domain name suffix to be appended
  768.           to a host name when it contains no periods. For example,  if  the
  769.           suffix  is  set  to ampr.org and the user enters telnet ka9q, the
  770.           domain resolver will attempt to find ka9q.ampr.org. If  the  host
  771.           name  being  sought  contains  one  or more periods, however, the
  772.           default suffix is NOT applied (eg. telnet foo.bar  would  NOT  be
  773.           turned into foo.bar.ampr.org).
  774.  
  775.           3.18.7.  domain trace [on | off]
  776.           Display  or set the flag controlling the tracing of domain server
  777.           requests and responses. Trace messages will be  seen  only  if  a
  778.           domain  name  being  sought is not found in the local cache file,
  779.           domain.txt.
  780.  
  781.           3.18.8.  domain cache ...
  782.           These commands are used for the use of the resource  record  file
  783.           domain.txt, and the local memory cache.
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.                                                           May 28, 1991
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                                      - 13 -
  797.  
  798.  
  799.           3.18.8.1.  domain cache clean [on | off]
  800.           Display  or  set  the  flag  controlling  the removal of resource
  801.           records from the domain.txt file whose time-to-live  has  reached
  802.           zero.
  803.           When  clean  is  off  (the  default),  expired  records  will  be
  804.           retained; if no replacement can be obtained from  another  domain
  805.           name server, these records will continue to be used.
  806.           When  clean  is on, expired records will be removed from the file
  807.           whenever any new record is added to the file.
  808.  
  809.           3.18.8.2.  domain cache list
  810.           List the current contents of the local memory cache.
  811.  
  812.           3.18.8.3.  domain cache size [<count>]
  813.           Display or set the nominal  maximum  size  of  the  local  memory
  814.           cache.  The default is 20.
  815.           (Note:  The  cache may be temporarily larger when waiting for new
  816.           records to be written to the domain.txt file.)
  817.  
  818.           3.18.8.4.  domain cache wait [<seconds>]
  819.           Display or set the interval in seconds  to  wait  for  additional
  820.           activity before updating the domain.txt file.  The default is 300
  821.           seconds (5 minutes).
  822.  
  823.           3.19.  echo [accept | refuse]
  824.           Display or set the flag controlling client Telnet's response to a
  825.           remote WILL ECHO offer.
  826.           The Telnet presentation protocol specifies that in the absence of
  827.           a negotiated agreement to the contrary, neither end  echoes  data
  828.           received  from  the other.  In this mode, a Telnet client session
  829.           echoes keyboard input locally and nothing is actually sent  until
  830.           a carriage return is typed. Local line editing is also performed:
  831.           backspace deletes  the  last  character  typed,  while  control-U
  832.           deletes the entire line.
  833.           When  communicating  from keyboard to keyboard the standard local
  834.           echo mode is used, so  the  setting  of  this  parameter  has  no
  835.           effect. However, many timesharing systems (eg. UNIX) prefer to do
  836.           their own echoing of typed input.   (This  makes  screen  editors
  837.           work  right, among other things). Such systems send a Telnet WILL
  838.           ECHO offer immediately upon receiving an incoming Telnet  connec-
  839.           tion  request.  If echo accept is in effect, a client Telnet ses-
  840.           sion will automatically return a DO ECHO response. In this  mode,
  841.           local  echoing  and  editing is turned off and each key stroke is
  842.           sent immediately (subject to the congestion control algorithms in
  843.           TCP).   While  this  mode  is just fine across an Ethernet, it is
  844.           clearly inefficient and painful across  slow  paths  like  packet
  845.           radio  channels.  Specifying  echo refuse causes an incoming WILL
  846.           ECHO offer to be answered with a DONT  ECHO;  the  client  Telnet
  847.           session  remains in the local echo mode.  Sessions already in the
  848.           remote echo mode are unaffected. (Note: Berkeley Unix has  a  bug
  849.           in  that  it  will  still  echo  input  even after the client has
  850.           refused the WILL ECHO offer. To get around  this  problem,  enter
  851.           the stty -echo command to the shell once you have logged in.)
  852.  
  853.  
  854.  
  855.  
  856.                                                           May 28, 1991
  857.  
  858.  
  859.  
  860.  
  861.  
  862.                                      - 14 -
  863.  
  864.  
  865.           3.20.  eol [unix | standard]
  866.           Display  or set Telnet's end-of-line behavior when in remote echo
  867.           mode.  In standard mode, each key is sent as-is.  In  unix  mode,
  868.           carriage  returns  are translated to line feeds.  This command is
  869.           not necessary with all UNIX systems; use it only  when  you  find
  870.           that  a particular system responds to line feeds but not carriage
  871.           returns.  Only SunOS release 3.2 seems to exhibit this  behavior;
  872.           later releases are fixed.
  873.  
  874.           3.21.  escape [<char>]
  875.           Display  or set the current command-mode escape character in hex.
  876.           (This command is not provided on  the  IBM-PC;  on  the  PC,  the
  877.           escape char is always F10.)
  878.  
  879.           3.22.  etherstat
  880.           Display 3-Com Ethernet controller statistics (if configured).
  881.  
  882.           3.23.  exit
  883.           Exit the net.exe program and return to MS-DOS.
  884.  
  885.           3.24.  finger <user@hostid> [<user@hostid> ...]
  886.           Issue a network finger request for user user at host hostid. This
  887.           creates a client  session  which  may  be  interrupted,  resumed,
  888.           reset, etc, just like a Telnet client session.
  889.  
  890.           3.25.  ftp <hostid>
  891.           Open  an  FTP  control  channel  to the specified remote host and
  892.           enter converse mode on  the  new  session.   Responses  from  the
  893.           remote  server  are displayed directly on the screen. See the FTP
  894.           Subcommands chapter for descriptions of the commands available in
  895.           a FTP session.
  896.  
  897.           3.26.  help
  898.           Display a brief summary of top-level commands.
  899.  
  900.           3.27.  hop ...
  901.           These  commands are used to test the connectivity of the network.
  902.  
  903.           3.27.1.  hop check <hostid>
  904.           Initiate a hopcheck session to the specified host.  This  uses  a
  905.           series  of  UDP  "probe" packets with increasing IP TTL fields to
  906.           determine the sequence of gateways in the path to  the  specified
  907.           destination. This function is patterned after the UNIX traceroute
  908.           facility.
  909.           ICMP message tracing should be turned off before this command  is
  910.           executed (see the icmp trace command).
  911.  
  912.           3.27.2.  hop maxttl [<hops>]
  913.           Display or set the maximum TTL value to be used in hop check ses-
  914.           sions.  This effectively bounds the radius of the search.
  915.  
  916.           3.27.3.  hop maxwait [<seconds>]
  917.           Display or set the maximum interval that a hopcheck session  will
  918.           wait  for  responses at each stage of the trace. The default is 5
  919.  
  920.  
  921.  
  922.                                                           May 28, 1991
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                                      - 15 -
  929.  
  930.  
  931.           seconds.
  932.  
  933.           3.27.4.  hop queries [<count>]
  934.           Display or set the number of UDP probes that will be sent at each
  935.           stage of the trace. The default is 3.
  936.  
  937.           3.27.5.  hop trace [on | off]
  938.           Display  or  set the flag that controls the display of additional
  939.           information during a hop check session.
  940.  
  941.           3.28.  hostname [<name>]
  942.           Display or set the local host's name. By convention  this  should
  943.           be  the  same  as  the host's primary domain name. This string is
  944.           used only  in  the  greeting  messages  of  the  various  network
  945.           servers; note that it does NOT set the system's IP address.
  946.           If  <name>  is  the  same  as an <iface> (see the Attach commands
  947.           chapter), this command will search for a  CNAME  domain  resource
  948.           record which corresponds to the IP address of the <iface>.
  949.  
  950.           3.29.  hs
  951.           Display  statistics  about the HS high speed HDLC driver (if con-
  952.           figured and active).
  953.  
  954.           3.30.  icmp ...
  955.           These commands are used for the Internet Control Message Protocol
  956.           service.
  957.  
  958.           3.30.1.  icmp echo [on | off]
  959.           Display  or  set the flag controlling the asynchronous display of
  960.           ICMP Echo Reply packets.  This flag must be on for one-shot pings
  961.           to work (see the ping command.)
  962.  
  963.           3.30.2.  icmp status
  964.           Display  statistics  about  the Internet Control Message Protocol
  965.           (ICMP), including the number of ICMP messages of each  type  sent
  966.           or received.
  967.  
  968.           3.30.3.  icmp trace [on | off]
  969.           Display  or  set  the  flag controlling the display of ICMP error
  970.           messages. These informational messages are generated by  Internet
  971.           routers  in response to routing, protocol or congestion problems.
  972.           This option should be turned  off  before  using  the  hop  check
  973.           facility  because  it  relies on ICMP Time Exceeded messages, and
  974.           the asynchronous display of these messages will be  mingled  with
  975.           hop check command output.
  976.  
  977.           3.31.  ifconfig
  978.           Display a list of interfaces, with a short status for each.
  979.  
  980.           3.31.1.  ifconfig <iface>
  981.           Display an extended status of the interface.
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                                                           May 28, 1991
  989.  
  990.  
  991.  
  992.  
  993.  
  994.                                      - 16 -
  995.  
  996.  
  997.           3.31.2.  ifconfig <iface> broadcast <address>
  998.           Set the broadcast address for the interface.  The <address> takes
  999.           the form of an IP address with  1's  in  the  host  part  of  the
  1000.           address.   This  is related to the netmask sub-command.  See also
  1001.           the arp command.
  1002.  
  1003.           3.31.3.  ifconfig <iface> encapsulation <name>
  1004.           Not fully implemented.
  1005.  
  1006.           3.31.4.  ifconfig <iface> forward <forward-iface>
  1007.           Set a forwarding interface for multiple channel  interfaces.   To
  1008.           remove the forward, set <forward-iface> to <iface>.
  1009.  
  1010.           3.31.5.  ifconfig <iface> ipaddress <hostid>
  1011.           Set  the  IP address for this interface.  It is standard Internet
  1012.           practice that each interface has its own address.  For hosts with
  1013.           only  one interface, the interface address is usually the same as
  1014.           the host address.  See also the hostname and ip address commands.
  1015.  
  1016.           3.31.6.  ifconfig <iface> linkaddress <hardware-dependant>
  1017.           Set the hardware dependant address for this interface.
  1018.  
  1019.           3.31.7.  ifconfig <iface> mtu <mtu>
  1020.           Set the MTU for this interface.  See the Setting ... MTU, MSS and
  1021.           Window chapter for more information.
  1022.  
  1023.           3.31.8.  ifconfig <iface> netmask <address>
  1024.           Set the sub-net mask for this interface.  The <address> takes the
  1025.           form of an IP address with 1's in the network and subnet parts of
  1026.           the address, and 0's in the host part of the  address.   This  is
  1027.           related  to  the  broadcast sub-command.  See also the route com-
  1028.           mand.
  1029.  
  1030.           3.31.9.  ifconfig <iface> rxbuf <?>
  1031.           Not yet implemented.
  1032.  
  1033.           3.32.  ip ...
  1034.           These commands configure the Internet Protocol (IP) service.
  1035.  
  1036.           3.32.1.  ip address [<hostid>]
  1037.           Display or set the default local IP address. This command must be
  1038.           given before an attach command if it is to be used as the default
  1039.           IP address for the interface.
  1040.  
  1041.           3.32.2.  ip rtimer [<seconds>]
  1042.           Display or set the IP reassembly timeout. The default is 30  sec-
  1043.           onds.
  1044.  
  1045.           3.32.3.  ip status
  1046.           Display  Internet  Protocol (IP) statistics, such as total packet
  1047.           counts and error counters of various types.
  1048.  
  1049.  
  1050.  
  1051.  
  1052.  
  1053.  
  1054.                                                           May 28, 1991
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                      - 17 -
  1061.  
  1062.  
  1063.           3.32.4.  ip ttl [<hops>]
  1064.           Display or set the time-to-live value placed in each outgoing  IP
  1065.           datagram.   This  limits  the  number of switch hops the datagram
  1066.           will be allowed to take. The idea is to bound the lifetime of the
  1067.           packet  should  it  become  caught in a routing loop, so make the
  1068.           value slightly larger than the number of hops across the  network
  1069.           you expect to transit packets.  The default is set at compilation
  1070.           time to the official recommended value for the Internet.
  1071.  
  1072.           3.33.  isat [on | off]
  1073.           Display or set the AT flag.  Currently, there is no sure-fire way
  1074.           to  determine  the  type of clock-chip being used.  If an AT type
  1075.           clock is in use, this command will allow measurement of  time  in
  1076.           milliseconds,  rather than clock ticks (55 milliseconds per clock
  1077.           tick).
  1078.  
  1079.           3.33.1.  kick [<session>]
  1080.           Kick all sockets associated with a session;  if  no  argument  is
  1081.           given,  kick  the current session.  Performs the same function as
  1082.           the ax25 kick and tcp kick commands, but is easier to type.
  1083.  
  1084.           3.34.  log [stop | <filename>]
  1085.           Display or set the filename for logging server sessions. If  stop
  1086.           is  given  as  the  argument,  logging is terminated (the servers
  1087.           themselves are unaffected).  If a file name is given as an  argu-
  1088.           ment, server session log entries will be appended to it.
  1089.  
  1090.           3.35.  mbox
  1091.           Display  the status of the mailbox server system (if configured).
  1092.  
  1093.           3.36.  memory ...
  1094.           These commands are used to display memory allocation  statistics.
  1095.  
  1096.           3.36.1.  memory free
  1097.           Display the storage allocator free list. Each entry consists of a
  1098.           starting address, in hex, and a size, in decimal bytes.
  1099.  
  1100.           3.36.2.  memory ibuffs
  1101.           Display or set the number of  buffers  on  the  interrupt  buffer
  1102.           pool.  The default is 5.
  1103.  
  1104.           3.36.3.  memory ibufsize
  1105.           Display  or  set  the size of each buffer on the interrupt buffer
  1106.           pool.  Since the interrupt buffer  pool  consists  of  fixed-size
  1107.           buffers,  the  value  chosen  must be large enough to satisfy the
  1108.           needs of the most demanding driver. The default is 2048.
  1109.  
  1110.           3.36.4.  memory sizes
  1111.           Display a histogram of storage allocator request sizes. Each his-
  1112.           togram  bin is a binary order of magnitude (i.e., a factor of 2).
  1113.  
  1114.           3.36.5.  memory status
  1115.           Display a summary of storage allocator statistics. The first line
  1116.           shows the base address of the heap, its total size, the amount of
  1117.  
  1118.  
  1119.  
  1120.                                                           May 28, 1991
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                                      - 18 -
  1127.  
  1128.  
  1129.           heap memory available in bytes and as a percentage of  the  total
  1130.           heap  size,  and the amount of memory left over (i.e., not placed
  1131.           on the heap at startup) and therefore available for shell subcom-
  1132.           mands.
  1133.           The  second  line shows the total number of calls to allocate and
  1134.           free blocks of memory, the difference of these two values  (i.e.,
  1135.           the  number of allocated blocks outstanding), the number of allo-
  1136.           cation requests that were denied due to lack of memory,  and  the
  1137.           number  of calls to free() that attempted to free garbage (eg. by
  1138.           freeing the same block twice or freeing a garbled pointer).
  1139.           The third line shows the number of calls to malloc and free  that
  1140.           occurred  with  interrupts off. In normal situations these values
  1141.           should be zero.  The fourth line shows statistics for the special
  1142.           pool of fixed-size buffers used to satisfy requests for memory at
  1143.           interrupt time. The variables shown are  the  number  of  buffers
  1144.           currently  in  the  pool,  their size, and the number of requests
  1145.           that failed due to exhaustion of the pool.
  1146.  
  1147.           3.37.  mkdir <dirname>
  1148.           Create a sub-directory in the current working directory.
  1149.  
  1150.           3.38.  mode <iface> [vc | datagram]
  1151.           Control the default transmission  mode  on  the  specified  AX.25
  1152.           interface.   In  datagram  mode,  IP  packets are encapsulated in
  1153.           AX.25 UI frames and transmitted  without  any  other  link  level
  1154.           mechanisms, such as connections or acknowledgements.
  1155.           In  vc  (virtual  circuit)  mode,  IP packets are encapsulated in
  1156.           AX.25 I frames and are acknowledged at the link  level  according
  1157.           to the AX.25 protocol.  Link level connections are opened if nec-
  1158.           essary.
  1159.           In both modes, ARP is used to map IP  to  AX.25  addresses.   The
  1160.           defaults can be overridden with the type-of-service (TOS) bits in
  1161.           the IP header.  Turning on the "reliability" bit causes I  frames
  1162.           to  be used, while turning on the "low delay" bit uses UI frames.
  1163.           (The effect of turning on both bits is undefined and  subject  to
  1164.           change).
  1165.           In  both modes, IP-level fragmentation is done if the datagram is
  1166.           larger than the interface  MTU.  In virtual  circuit  mode,  how-
  1167.           ever, the resulting datagram (or fragments) is further fragmented
  1168.           at the AX.25 layer if it (or they)  are  still  larger  than  the
  1169.           AX.25  paclen  parameter.  In  AX.25 fragmentation, datagrams are
  1170.           broken into several I frames and reassembled at the receiving end
  1171.           before being passed to IP. This is preferable to IP fragmentation
  1172.           whenever possible because of decreased overhead  (the  IP  header
  1173.           isn't repeated in each fragment) and increased robustness (a lost
  1174.           fragment is immediately retransmitted by the link layer).
  1175.  
  1176.           3.39.  more <file> [<file> ...]
  1177.           Display the specified file(s) a screen at a time. To  proceed  to
  1178.           the  next screen, press the space bar; to cancel the display, hit
  1179.           the 'q' key.  The more command creates a  session  that  you  can
  1180.           suspend and resume just like any other session.
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.                                                           May 28, 1991
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.                                      - 19 -
  1193.  
  1194.  
  1195.           3.40.  param <iface> [<param> [value]] ...
  1196.           Invoke  a device-specific control routine.  The following parame-
  1197.           ter names are recognized by the parameter command,  but  not  all
  1198.           are  supported  by each device type. Most commands deal only with
  1199.           half-duplex packet radio interfaces.
  1200.                TxDelay - transmit keyup delay
  1201.                Persist - P-persistence setting
  1202.                SlotTime - persistence slot time setting
  1203.                txTail - transmit done holdup delay
  1204.                FullDup - enable/disable full duplex
  1205.                Hardware - hardware specific command
  1206.                TxMute - experimental transmit mute command
  1207.                DTR - control Data Terminal Ready (DTR) signal to modem
  1208.                RTS - control Request to Send (RTS) signal to modem
  1209.                Speed - set line speed
  1210.                EndDelay
  1211.                Group
  1212.                Idle
  1213.                Min
  1214.                MaxKey
  1215.                Wait
  1216.                Down - drop modem control lines
  1217.                Up - raise modem control lines
  1218.                Return - return a KISS TNC to command mode
  1219.  
  1220.           Depending on the interface, some parameters can be read  back  by
  1221.           omitting  a  new  value.  This  is not possible with KISS TNCs as
  1222.           there are no KISS  commands  for  reading  back  previously  sent
  1223.           parameters.
  1224.           On  a  KISS  TNC interface, the param command generates and sends
  1225.           control packets to the TNC.  Data bytes are treated  as  decimal.
  1226.           For  example,  param  ax0  txdelay  255  will set the keyup timer
  1227.           (type field = 1) on the KISS TNC configured as ax0 to  2.55  sec-
  1228.           onds  (255  x  .01 sec).  On all asy interfaces (slip, kiss/ax25,
  1229.           nrs, ppp) the param <iface> speed command allows the baud rate to
  1230.           be read or set.
  1231.           The  implementation  of  this  command  for the various interface
  1232.           drivers is incomplete and subject to change.
  1233.  
  1234.           3.41.  ping <hostid> [<length> [<seconds> [<incflag>]]]
  1235.           Ping (send ICMP Echo Request packets to) the specified  host.  By
  1236.           default  the data field contains only a small timestamp to aid in
  1237.           determining round trip time; if the optional length  argument  is
  1238.           given,  the  appropriate  number of data bytes (consisting of hex
  1239.           55) are added to the ping packets.
  1240.           If interval is specified, pings will be repeated indefinitely  at
  1241.           the  specified  number of seconds; otherwise a single, "one shot"
  1242.           ping is done.  Responses to one-shot pings appear  asynchronously
  1243.           on the command screen, while repeated pings create a session that
  1244.           may be suspended and resumed.  Pinging continues until  the  ses-
  1245.           sion is manually reset.
  1246.           The incflag option causes a repeated ping to increment the target
  1247.           IP address for each ping;  it  is  an  experimental  feature  for
  1248.           searching blocks of IP addresses for active hosts.
  1249.  
  1250.  
  1251.  
  1252.                                                           May 28, 1991
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.                                      - 20 -
  1259.  
  1260.  
  1261.           3.42.  ppp ...
  1262.           These  commands  are  used  to  configure Point to Point Protocol
  1263.           interfaces.
  1264.           This implementation of PPP is designed to be as complete as  pos-
  1265.           sible.   Because  of  this,  the  number of options can be rather
  1266.           daunting.  However, a typical PPP configuration might include the
  1267.           following commands:
  1268.                attach asy 0x3f8 4 ppp pp0 4096 1500 9600
  1269.                dial pp0 30 <hostid> 3 dialer.pp0
  1270.                #
  1271.                ppp pp0 lcp local accm 0
  1272.                ppp pp0 lcp local compress address on
  1273.                ppp pp0 lcp local compress protocol on
  1274.                ppp pp0 lcp local magic on
  1275.                ppp pp0 lcp open active
  1276.                #
  1277.                ppp pp0 ipcp local compress tcp 16 1
  1278.                ppp pp0 ipcp open active
  1279.                #
  1280.                route add default pp0
  1281.  
  1282.           3.42.1.  ppp <iface>
  1283.           Display the status of the PPP interface.
  1284.  
  1285.           3.42.2.  ppp <iface> lcp ...
  1286.           These  commands are used for the LCP [Link Control Protocol] con-
  1287.           figuration.
  1288.  
  1289.           3.42.2.1.  ppp <iface> lcp close
  1290.           Shutdown the PPP interface.
  1291.  
  1292.           3.42.2.2.  ppp <iface> lcp local ...
  1293.           These commands control the configuration of the local side of the
  1294.           link.   If an option is specified, the parameters will be used as
  1295.           the initial values in configuration requests.  If not  specified,
  1296.           that option will not be requested.
  1297.           For  each  of  these options, the allow parameter will permit the
  1298.           remote to include that option in  its  response,  even  when  the
  1299.           option  is  not included in the request.  By default, all options
  1300.           are allowed.
  1301.  
  1302.           3.42.2.2.1.  ppp <iface> lcp local accm [ <bitmap> | allow [on  |
  1303.           off] ]
  1304.           Display  or  set the Async Control Character Map.  The default is
  1305.           0xffffffff.
  1306.  
  1307.           3.42.2.2.2.  ppp <iface> lcp local authenticate [ pap  |  none  |
  1308.           allow [on | off] ]
  1309.           Display or set the authentication protocol.  The default is none.
  1310.  
  1311.           3.42.2.2.3.  ppp <iface> lcp local compress address/control [  on
  1312.           | off | allow [on | off] ]
  1313.           Display  or  set  the  option to compress the address and control
  1314.           fields of the PPP HLDC-like header.  This is generally  desirable
  1315.  
  1316.  
  1317.  
  1318.                                                           May 28, 1991
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                                      - 21 -
  1325.  
  1326.  
  1327.           for  slow  asynchronous  links,  and undesirable for fast or syn-
  1328.           chronous links.  The default is off.
  1329.  
  1330.           3.42.2.2.4.  ppp <iface> lcp local compress protocol [ on | off |
  1331.           allow [on | off] ]
  1332.           Display  or  set the option to compress the protocol field of the
  1333.           PPP HLDC-like header.  This is generally desirable for slow asyn-
  1334.           chronous  links,  and  undesirable for fast or synchronous links.
  1335.           The default is off.
  1336.  
  1337.           3.42.2.2.5.  ppp <iface> lcp local magic [ on | off |  <value>  |
  1338.           allow [on | off] ]
  1339.           Display  or  set  the  initial  Magic Number.  The default is off
  1340.           (zero).
  1341.  
  1342.           3.42.2.2.6.  ppp <iface> lcp local mru [ <size>  |  allow  [on  |
  1343.           off] ]
  1344.           Display or set the Maximum Receive Unit.  The default is 1500.
  1345.  
  1346.           3.42.2.2.7.  ppp <iface> lcp local default
  1347.           Reset the options to their default values.
  1348.  
  1349.           3.42.2.3.  ppp <iface> lcp open active | passive
  1350.           Wait for the physical layer to come up.  If active, initiate con-
  1351.           figuration negotiation.  If passive, wait for configuration nego-
  1352.           tiation from the remote.
  1353.  
  1354.           3.42.2.4.  ppp <iface> lcp remote ...
  1355.           These  commands  control  the configuration of the remote side of
  1356.           the link.  The options are identical to those of the local  side.
  1357.           If  an  option  is  specified,  the  parameters  will  be used in
  1358.           responses to the remote's configuration requests.  If not  speci-
  1359.           fied, that option will be accepted if it is allowed.
  1360.           For  each  of  these options, the allow parameter will permit the
  1361.           remote to specify that option in its request.   By  default,  all
  1362.           options are allowed.
  1363.  
  1364.           3.42.2.5.  ppp <iface> lcp timeout [<seconds>]
  1365.           Display or set the interval to wait between configuration or ter-
  1366.           mination attempts.  The default is 3 seconds.
  1367.  
  1368.           3.42.2.6.  ppp <iface> lcp try ...
  1369.           These commands are used for the various counters.
  1370.  
  1371.           3.42.2.6.1.  ppp <iface> lcp try configure [<count>]
  1372.           Display or set the number of configuration  requests  sent.   The
  1373.           default is 10.
  1374.  
  1375.           3.42.2.6.2.  ppp <iface> lcp try failure [<count>]
  1376.           Display  or  set the number of bad configuration requests allowed
  1377.           from the remote.  The default is 5.
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.                                                           May 28, 1991
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.                                      - 22 -
  1391.  
  1392.  
  1393.           3.42.2.6.3.  ppp <iface> lcp try terminate [<count>]
  1394.           Display or set the number of  termination  requests  sent  before
  1395.           shutdown.  The default is 2.
  1396.  
  1397.           3.42.3.  ppp <iface> ipcp ...
  1398.           These  commands  are used for the IPCP [Internet Protocol Control
  1399.           Protocol] configuration.
  1400.           The close, open, timeout and try sub-commands  are  identical  to
  1401.           the LCP (described above).
  1402.  
  1403.           3.42.3.1.  ppp <iface> ipcp local ...
  1404.           These commands control the configuration of the local side of the
  1405.           link.  If an option is specified, the parameters will be used  as
  1406.           the  initial values in configuration requests.  If not specified,
  1407.           that option will not be requested.
  1408.           For each of these options, the allow parameter  will  permit  the
  1409.           remote  to  include  that  option  in its response, even when the
  1410.           option is not included in the request.  By default,  all  options
  1411.           are allowed.
  1412.  
  1413.           3.42.3.1.1.   ppp  <iface>  ipcp local address [ <hostid> | allow
  1414.           [on | off] ]
  1415.           Display or set the local address for negotiation purposes.  If an
  1416.           address of 0 is specified, the other side of the link will supply
  1417.           the address.  By default, no addresses are negotiated.
  1418.  
  1419.           3.42.3.1.2.  ppp  <iface>  ipcp  local  compress  [  tcp  <slots>
  1420.           [<flag>] | none | allow [on | off] ]
  1421.           Display or set the compression protocol.  The default is none.
  1422.           The  tcp  <slots>  specifies  the number of "conversation" slots,
  1423.           which must be 1 to 255.  (This may be limited at compilation time
  1424.           to a smaller number.)  A good choice is in the range 4 to 16.
  1425.           The  tcp <flag> is 0 (don't compress the slot number) or 1 (OK to
  1426.           compress the slot number).  KA9Q can handle compressed slot  num-
  1427.           bers, so the default is 1.
  1428.  
  1429.           3.42.3.2.  ppp <iface> ipcp remote ...
  1430.           These  commands  control  the configuration of the remote side of
  1431.           the link.  The options are identical to those of the local  side.
  1432.           If  an  option  is  specified,  the  parameters  will  be used in
  1433.           responses to the remote's configuration requests.  If not  speci-
  1434.           fied, that option will be accepted if it is allowed.
  1435.           For  each  of  these options, the allow parameter will permit the
  1436.           remote to specify that option in its request.   By  default,  all
  1437.           options are allowed.
  1438.  
  1439.           3.42.4.  ppp <iface> pap ...
  1440.           These commands are used for the PAP [Password Authentication Pro-
  1441.           tocol] configuration.
  1442.           The timeout  and  try  sub-commands  are  identical  to  the  LCP
  1443.           (described above).  However, the terminate counter is unused.
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.                                                           May 28, 1991
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.                                      - 23 -
  1457.  
  1458.  
  1459.           3.42.4.1.  ppp <iface> pap user [ <username> [<password>] ]
  1460.           Display  or  set  the  username (the password may be set, but not
  1461.           displayed).  When the username is specified, but no  password  is
  1462.           supplied, the ftpusers file is searched for the password.  When a
  1463.           username/password is unknown or rejected, a session  will  appear
  1464.           at the console to prompt for a new username/password.
  1465.  
  1466.           3.42.5.  ppp <iface> trace [<flags>]
  1467.           Display  or set the flags that control the logging of information
  1468.           during PPP link configuration.
  1469.           The flag value is 0 for none, 1 for basic,  and  2  for  general.
  1470.           Values greater than 2 are usually not compiled, and are described
  1471.           in the appropriate source files where they are defined.
  1472.  
  1473.           3.43.  ps
  1474.           Display all current processes in the system. The  fields  are  as
  1475.           follows:
  1476.           PID - Process ID (the address of the process descriptor).
  1477.           SP - The current value of the process stack pointer.
  1478.           stksize - The size of the stack allocated to the process.
  1479.           maxstk  -  The  apparent  peak stack utilization of this process.
  1480.           This is done in a somewhat  heuristic  fashion,  so  the  numbers
  1481.           should  be  treated  as  approximate.  If  this number reaches or
  1482.           exceeds the stksize figure,  the  system  is  almost  certain  to
  1483.           crash;  the net.exe program should be recompiled to give the pro-
  1484.           cess a larger allocation when it is started.
  1485.           event - The event  this  task  is  waiting  for,  if  it  is  not
  1486.           runnable.
  1487.           fl  -  Process  status  flags.  There  are  three:  I (Interrupts
  1488.           enabled), W (Waiting for event) and S (Suspended). The I flag  is
  1489.           set  whenever a task has executed a pwait() call (wait for event)
  1490.           without first disabling hardware interrupts. Only tasks that wait
  1491.           for  hardware  interrupt  events will turn off this flag; this is
  1492.           done to avoid critical sections and missed interrupts. The W flag
  1493.           indicates  that  the  process  is waiting for an event; the event
  1494.           column will be non-blank. Note that although there may be several
  1495.           runnable  processes at any time (shown in the ps listing as those
  1496.           without the W flag and with blank event fields) only one  process
  1497.           is  actually  running  at any one instant (The Refrigerator Light
  1498.           Effect says that the ps command is always the  one  running  when
  1499.           this display is generated.)
  1500.  
  1501.           3.44.  pwd [<dirname>]
  1502.           An alias for the cd command.
  1503.  
  1504.           3.45.  record [off | <filename>]
  1505.           Append  to  filename  all  data  received on the current session.
  1506.           Data sent on the current session is also written  into  the  file
  1507.           except  for  Telnet  sessions  in  remote echo mode.  The command
  1508.           record off stops recording and closes the file.
  1509.  
  1510.           3.46.  remote [-p <port>] [-k  <key>]  [-a  <kickaddr>]  <hostid>
  1511.           exit | reset | kick
  1512.           Send a UDP packet to the specified host commanding it to exit the
  1513.  
  1514.  
  1515.  
  1516.                                                           May 28, 1991
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.                                      - 24 -
  1523.  
  1524.  
  1525.           net.exe program, reset the processor, or force  a  retransmission
  1526.           on  TCP connections.  For this command to be accepted, the remote
  1527.           system must be running the remote  server  and  the  port  number
  1528.           specified  in the remote command must match the port number given
  1529.           when the server was started on the remote system.   If  the  port
  1530.           numbers  do  not match, or if the remote server is not running on
  1531.           the target system, the command packet is ignored.   Even  if  the
  1532.           command is accepted there is no acknowledgement.
  1533.           The  kick command forces a retransmission timeout on all TCP con-
  1534.           nections that the remote node may have with the local node.  If a
  1535.           connection  is idle, a current ACK packet (without data) is sent.
  1536.           If the -a option is used, connections to the specified  host  are
  1537.           kicked instead. No key is required for the kick subcommand.
  1538.           The  exit  and reset subcommands are mainly useful for restarting
  1539.           the net.exe program on a remote unattended system after the  con-
  1540.           figuration  file  has  been  updated.   The  remote system should
  1541.           invoke the net.exe program automatically upon booting, preferably
  1542.           in  an  infinite  loop.   For example, under MS-DOS the boot disk
  1543.           should contain the following in autoexec.net:
  1544.                :loop
  1545.                net
  1546.                goto :loop
  1547.  
  1548.           3.47.  remote -s <key>
  1549.           The exit and reset subcommands of remote require a password.  The
  1550.           password  is  set on a given system with the -s option, and it is
  1551.           specified in a command to a remote system with the -k option.  If
  1552.           no  password  is  set with the -s option, then the exit and reset
  1553.           subcommands are disabled.
  1554.           Note that remote is an experimental feature in NOS; it is not yet
  1555.           supported by any other TCP/IP implementation.
  1556.  
  1557.           3.48.  rename <oldfilename> <newfilename>
  1558.           Rename oldfilename to newfilename.
  1559.  
  1560.           3.49.  reset [<session>]
  1561.           Reset  the  specified session; if no argument is given, reset the
  1562.           current session.  This command should be used with caution  since
  1563.           it does not reliably inform the remote end that the connection no
  1564.           longer exists.  (In TCP a reset (RST) message will  be  automati-
  1565.           cally generated should the remote TCP send anything after a local
  1566.           reset has been done.  In AX.25 the DM message performs a  similar
  1567.           role.   Both are used to get rid of a lingering half-open connec-
  1568.           tion after a remote system has crashed.)
  1569.  
  1570.           3.50.  rip ...
  1571.           These commands are used for the RIP service.
  1572.  
  1573.           3.50.1.  rip accept <gateway>
  1574.           Remove the specified gateway from the RIP filter table,  allowing
  1575.           future broadcasts from that gateway to be accepted.
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.                                                           May 28, 1991
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                                      - 25 -
  1589.  
  1590.  
  1591.           3.50.2.  rip add <hostid> <seconds> [<flags>]
  1592.           Add  an  entry  to  the RIP broadcast table. The IP routing table
  1593.           will be sent to hostid every interval seconds. If flags is speci-
  1594.           fied  as 1, then "split horizon" processing will be performed for
  1595.           this destination. That is, any IP routing table entries  pointing
  1596.           to  the  interface  that will be used to send this update will be
  1597.           removed from the update.  If  split  horizon  processing  is  not
  1598.           specified,  then  all  routing  table entries except those marked
  1599.           "private" will be sent in  each  update.   (Private  entries  are
  1600.           never sent in RIP packets).
  1601.           Triggered  updates  are  always  done. That is, any change in the
  1602.           routing table that causes a previously reachable  destination  to
  1603.           become  unreachable  will  trigger  an update that advertises the
  1604.           destination with metric 15, defined to mean "infinity".
  1605.           Note that for RIP packets to be  sent  properly  to  a  broadcast
  1606.           address,  there  must  exist  correct  IP  routing  and ARP table
  1607.           entries that will first steer the broadcast to the correct inter-
  1608.           face  and  then place the correct link-level broadcast address in
  1609.           the link-level destination field.  If  a  standard  IP  broadcast
  1610.           address  convention  is  used  (eg. 128.96.0.0 or 128.96.255.255)
  1611.           then chances are you already have the necessary IP routing  table
  1612.           entry,  but  unusual  subnet  or  cluster-addressed  networks may
  1613.           require special attention.  However, an arp add command  will  be
  1614.           required  to translate this address to the appropriate link level
  1615.           broadcast address.  For example,
  1616.  
  1617.           arp add 128.96.0.0 ethernet ff:ff:ff:ff:ff:ff
  1618.  
  1619.           for an Ethernet network, and
  1620.  
  1621.           arp add 44.255.255.255 ax25 qst-0
  1622.  
  1623.           for an AX25 packet radio channel.
  1624.  
  1625.           3.50.3.  rip drop <dest>
  1626.           Remove an entry from the RIP broadcast table.
  1627.  
  1628.           3.50.4.  rip merge [on | off]
  1629.           This flag controls  an  experimental  feature  for  consolidating
  1630.           redundant  entries  in  the IP routing table. When rip merging is
  1631.           enabled, the table is scanned after processing each  RIP  update.
  1632.           An entry is considered redundant if the target(s) it covers would
  1633.           be routed identically by a less "specific" entry already  in  the
  1634.           table.  That is, the target address(es) specified by the entry in
  1635.           question must also match the target addresses of  the  less  spe-
  1636.           cific  entry and the two entries must have the same interface and
  1637.           gateway fields. For example, if the routing table contains
  1638.  
  1639.           Dest            Len Interface    Gateway          Metric  P Timer  Use
  1640.           1.2.3.4         32  ethernet0    128.96.1.2       1       0 0      0
  1641.           1.2.3           24  ethernet0    128.96.1.2       1       0 0      0
  1642.  
  1643.           then the first entry would be deleted as redundant since  packets
  1644.           sent  to  1.2.3.4  will  still  be routed correctly by the second
  1645.  
  1646.  
  1647.  
  1648.                                                           May 28, 1991
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.                                      - 26 -
  1655.  
  1656.  
  1657.           entry. Note that the relative metrics of the entries are ignored.
  1658.  
  1659.           3.50.5.  rip refuse <gateway>
  1660.           Refuse to accept RIP updates from the specified gateway by adding
  1661.           the gateway to the RIP filter table. It may be later removed with
  1662.           the rip accept command.
  1663.  
  1664.           3.50.6.  rip request <gateway>
  1665.           Send a RIP Request packet to the specified gateway, causing it to
  1666.           reply with a RIP Response packet containing its routing table.
  1667.  
  1668.           3.50.7.  rip status
  1669.           Display RIP status, including a count of the  number  of  packets
  1670.           sent and received, the number of requests and responses, the num-
  1671.           ber of unknown RIP packet types, and the number  of  refused  RIP
  1672.           updates  from  hosts in the filter table. A list of the addresses
  1673.           and intervals to which periodic RIP updates  are  being  sent  is
  1674.           also shown, along with the contents of the filter table.
  1675.  
  1676.           3.50.8.  rip trace [0 | 1 | 2]
  1677.           This  variable  controls the tracing of incoming and outgoing RIP
  1678.           packets.  Setting it to 0 disables all RIP tracing. A value of  1
  1679.           causes  changes in the routing table to be displayed, while pack-
  1680.           ets that cause no changes cause no output. Setting  the  variable
  1681.           to  2  produces  maximum output, including tracing of RIP packets
  1682.           that cause no change in the routing table.
  1683.  
  1684.           3.51.  rmdir <dirname>
  1685.           Remove a sub-directory from the current working directory.
  1686.  
  1687.           3.52.  route
  1688.           With no arguments, route displays the IP routing table.
  1689.  
  1690.           3.52.1.   route  add  <dest_hostid>[/bits]  |   default   <iface>
  1691.           [<gateway_hostid> [<metric>]]
  1692.           This  command  adds an entry to the routing table. It requires at
  1693.           least two more arguments, the hostid of  the  target  destination
  1694.           and  the  name  of  the  interface to which its packets should be
  1695.           sent.  If the destination is  not  local,  the  gateway's  hostid
  1696.           should  also  be specified. (If the interface is a point-to-point
  1697.           link, then gateway_hostid may be omitted even if  the  target  is
  1698.           non-local  because this field is only used to determine the gate-
  1699.           way's link level address, if any.  If the destination is directly
  1700.           reachable,  gateway_hostid is also unnecessary since the destina-
  1701.           tion address is used to determine the interface link address).
  1702.           The optional /bits suffix to the destination  host  id  specifies
  1703.           how many leading bits in the host id are to be considered signif-
  1704.           icant in the routing comparisons.   If  not  specified,  32  bits
  1705.           (i.e., full significance) is assumed.  With this option, a single
  1706.           routing table entry may refer to many hosts all sharing a  common
  1707.           bit string prefix in their IP addresses.  For example, ARPA Class
  1708.           A, B and C networks would use suffixes of /8, /16 and /24 respec-
  1709.           tively; the command
  1710.           route add 44/8 sl0 44.64.0.2
  1711.  
  1712.  
  1713.  
  1714.                                                           May 28, 1991
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.                                      - 27 -
  1721.  
  1722.  
  1723.           causes  any  IP addresses beginning with "44" in the first 8 bits
  1724.           to be routed to 44.64.0.2; the  remaining  24  bits  are  "don't-
  1725.           cares".
  1726.           When  an  IP  address to be routed matches more than one entry in
  1727.           the routing table, the entry with largest bits  parameter  (i.e.,
  1728.           the "best" match) is used. This allows individual hosts or blocks
  1729.           of hosts to be exceptions to a more general  rule  for  a  larger
  1730.           block of hosts.
  1731.           The  special  destination  default  is used to route datagrams to
  1732.           addresses not matched by any other entries in the routing  table;
  1733.           it is equivalent to specifying a /bits suffix of /0 to any desti-
  1734.           nation hostid.  Care must be taken with default entries since two
  1735.           nodes  with  default  entries  pointing  at each other will route
  1736.           packets to unknown addresses back and forth in a loop until their
  1737.           time-to-live  (TTL)  fields  expire.  (Routing loops for specific
  1738.           addresses can also be created, but this is less likely  to  occur
  1739.           accidentally).  The best way to use default routes is to pick one
  1740.           node in your network that has the "best" connections to the world
  1741.           outside  your  network.  Create a spanning tree with that node as
  1742.           the root and have each node install a default route  pointing  in
  1743.           the  direction of that node, with the exception of the root node.
  1744.           Here are some examples of the route command:
  1745.           # Route datagrams to IP address 44.0.0.3 to SLIP line #0.
  1746.           # No gateway is needed because SLIP is point-to point.
  1747.           route add 44.0.0.3 sl0
  1748.  
  1749.           # Route all default traffic to the gateway on the local Ethernet
  1750.           # with IP address 44.0.0.1
  1751.           route add default ec0 44.0.0.1
  1752.  
  1753.           # The local Ethernet has an ARPA Class-C address assignment;
  1754.           # route all IP addresses beginning with 192.4.8 to it
  1755.           route add 192.4.8/24 ec0
  1756.  
  1757.           # The station with IP address 44.0.0.10 is on the local AX.25 channel
  1758.           route add 44.0.0.10 ax0
  1759.  
  1760.           3.52.2.  route addprivate <dest hostid>[/bits] | default  <iface>
  1761.           [<gateway hostid> [<metric>]]
  1762.           This  command is identical to route add except that it also marks
  1763.           the new entry as private; it will never be included  in  outgoing
  1764.           RIP updates.
  1765.  
  1766.           3.52.3.  route drop <dest hostid>
  1767.           route  drop  deletes an entry from the table. If a packet arrives
  1768.           for the deleted address and a default route is in effect, it will
  1769.           be used.
  1770.  
  1771.           3.53.  session [<session #>]
  1772.           Without arguments, displays the list of current sessions, includ-
  1773.           ing session number, remote TCP or AX.25 address and  the  associ-
  1774.           ated  socket index.  An asterisk (*) is shown next to the current
  1775.           session; entering a blank line at this point puts you in converse
  1776.           mode with that session.  Entering a session number as an argument
  1777.  
  1778.  
  1779.  
  1780.                                                           May 28, 1991
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.                                      - 28 -
  1787.  
  1788.  
  1789.           to the session command will put you in converse  mode  with  that
  1790.           session.   If  the Telnet server is enabled, the user is notified
  1791.           of an incoming request and  a  session  number  is  automatically
  1792.           assigned.   The user may then select the session normally to con-
  1793.           verse with the remote user as though the session had been locally
  1794.           initiated.
  1795.  
  1796.           3.54.  shell
  1797.           Suspends  net.exe  and  executes a sub-shell ("command processor"
  1798.           under MS-DOS).  When the sub-shell exits, net.exe resumes  (under
  1799.           MS-DOS,  enter  the  exit  command).   Background  activity  (FTP
  1800.           servers, etc) is also suspended while the subshell executes. Note
  1801.           that  this will fail unless there is sufficient unused memory for
  1802.           the sub-shell and whatever command the user tries to run.
  1803.  
  1804.           3.55.  smtp ...
  1805.           These commands control the operation of the Simple Mail  Transfer
  1806.           Protocol (that is, mail).
  1807.  
  1808.           3.55.1.  smtp gateway [<hostid>]
  1809.           Displays or sets the host to be used as a "smart" mail relay. Any
  1810.           mail sent to a host not in the host table will instead be sent to
  1811.           the gateway for forwarding.
  1812.  
  1813.           3.55.2.  smtp kick
  1814.           Run  through  the  outgoing mail queue and attempt to deliver any
  1815.           pending mail.  This command allows the user to  "kick"  the  mail
  1816.           system  manually.  Normally, this command is periodically invoked
  1817.           by a timer whenever net.exe is running.
  1818.  
  1819.           3.55.3.  smtp maxclients [<count>]
  1820.           Displays or sets the maximum number of simultaneous outgoing SMTP
  1821.           sessions  that  will  be allowed. The default is 10; reduce it if
  1822.           network congestion is a problem.
  1823.  
  1824.           3.55.4.  smtp timer [<seconds>]
  1825.           Displays or sets the interval between "kicks" (scans) of the out-
  1826.           bound mail queue. For example, smtp timer 600 will cause the sys-
  1827.           tem to check for outgoing mail every 10 minutes  and  attempt  to
  1828.           deliver  anything  it  finds,  subject of course to the smtp max-
  1829.           clients limit. Setting a value of zero  disables  queue  scanning
  1830.           altogether,  note that this is the default!  This value is recom-
  1831.           mended for stand alone IP gateways that never handle mail,  since
  1832.           it saves wear and tear on the floppy disk drive.
  1833.  
  1834.           3.55.5.  smtp trace [<value>]
  1835.           Displays  or sets the trace flag in the SMTP client, allowing you
  1836.           to watch SMTP's conversations as it  delivers  mail.   Zero  (the
  1837.           default) disables tracing.
  1838.  
  1839.           3.56.  socket [<socket #>]
  1840.           Without  an  argument,  displays all active sockets, giving their
  1841.           index and type, the address of the  associated  protocol  control
  1842.           block  and  the and owner process ID and name. If the index to an
  1843.  
  1844.  
  1845.  
  1846.                                                           May 28, 1991
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.                                      - 29 -
  1853.  
  1854.  
  1855.           active socket is supplied, the status display for the appropriate
  1856.           protocol  is  called.  For example, if the socket refers to a TCP
  1857.           connection, the display will be that given by the tcp status com-
  1858.           mand with the protocol control block address.
  1859.  
  1860.           3.57.  start ax25 | discard | echo | ftp | netrom | remote | smtp
  1861.           | telnet | ttylink
  1862.           Start the specified Internet server, allowing  remote  connection
  1863.           requests.
  1864.  
  1865.           3.58.   stop ax25 | discard | echo | ftp | netrom | remote | smtp
  1866.           | telnet | ttylink
  1867.           Stop the specified Internet server, rejecting any further  remote
  1868.           connect  requests.  Existing  connections are allowed to complete
  1869.           normally.
  1870.  
  1871.           3.59.  tcp ...
  1872.           These commands are used for  the  Transmission  Control  Protocol
  1873.           service.
  1874.  
  1875.           3.59.1.  tcp irtt [<milliseconds>]
  1876.           Display or set the initial round trip time estimate, in millisec-
  1877.           onds, to be used for new TCP connections until they  can  measure
  1878.           and  adapt to the actual value.  The default is 5000 milliseconds
  1879.           (5 seconds).  Increasing this when operating over  slow  channels
  1880.           will  avoid  the  flurry  of retransmissions that would otherwise
  1881.           occur as the smoothed estimate settles down at the correct value.
  1882.           Note that this command should be given before servers are started
  1883.           in order for it to have effect on incoming connections.
  1884.           TCP also caches measured round trip  times  and  mean  deviations
  1885.           (MDEV)  for  current  and recent destinations. Whenever a new TCP
  1886.           connection is opened, the system first looks in  this  cache.  If
  1887.           the  destination  is  found,  the cached IRTT and MDEV values are
  1888.           used. If not, the default IRTT value  mentioned  above  is  used,
  1889.           along  with a MDEV of 0.  This feature is fully automatic, and it
  1890.           can improve performance greatly when a series of connections  are
  1891.           opened  and  closed  to  a given destination (eg. a series of FTP
  1892.           file transfers or directory listings).
  1893.  
  1894.           3.59.2.  tcp kick <tcb_addr>
  1895.           If there is unacknowledged data on the send queue of  the  speci-
  1896.           fied TCB, this command forces an immediate retransmission.
  1897.  
  1898.           3.59.3.  tcp mss [<size>]
  1899.           Display or set the TCP Maximum Segment Size in bytes that will be
  1900.           sent on all outgoing TCP connect request  (SYN  segments).   This
  1901.           tells  the remote end the size of the largest segment (packet) it
  1902.           may send. Changing MSS affects only future connections;  existing
  1903.           connections are unaffected.
  1904.  
  1905.           3.59.4.  tcp reset <tcb_addr>
  1906.           Deletes the TCP control block at the specified address.
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.                                                           May 28, 1991
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.                                      - 30 -
  1919.  
  1920.  
  1921.           3.59.5.  tcp rtt <tcb_addr> <rtt> <mdev>
  1922.           Replaces  the  automatically  computed  round  trip time and mean
  1923.           deviation values in the specified TCB with  new  values  in  mil-
  1924.           liseconds.   This  command  is useful to speed up recovery from a
  1925.           series of lost packets since it provides a manual  bypass  around
  1926.           the normal backoff retransmission timing mechanisms.
  1927.  
  1928.           3.59.6.  tcp status [<tcb_addr>]
  1929.           Without  arguments, displays several TCP-level statistics, plus a
  1930.           summary of all existing TCP connections, including  TCB  address,
  1931.           send  and receive queue sizes, local and remote sockets, and con-
  1932.           nection state. If tcb_addr is specified, a more detailed dump  of
  1933.           the  specified  TCB  is  generated,  including  send  and receive
  1934.           sequence numbers and timer information.
  1935.  
  1936.           3.59.7.  tcp window [<size>]
  1937.           Displays or sets the default receive window size in bytes  to  be
  1938.           used  by  TCP when creating new connections. Existing connections
  1939.           are unaffected.
  1940.  
  1941.           3.60.  telnet <hostid>
  1942.           Creates a Telnet session to the specified host  and  enters  con-
  1943.           verse mode.
  1944.  
  1945.           3.61.  tip <iface>
  1946.           Creates a tip session that connects to the specified interface in
  1947.           "dumb terminal" mode.   The  interface  must  have  already  been
  1948.           attached  with  the attach command.  Any packet traffic (IP data-
  1949.           grams, etc) routed to the interface  while  this  session  exists
  1950.           will  be  discarded.   To close a tip session, use the reset com-
  1951.           mand. It will then revert to normal slip, nrs or kiss mode opera-
  1952.           tion.
  1953.           This  feature  is primarily useful for manually establishing SLIP
  1954.           connections.  At present, only the built-in "com"  ports  can  be
  1955.           used with this command.
  1956.  
  1957.           3.62.  trace [<iface> [off | <btio> [<tracefile>]]]
  1958.           Controls  packet  tracing by the interface drivers. Specific bits
  1959.           enable tracing of the various interfaces and the amount of infor-
  1960.           mation produced.  Tracing is controlled on a per-interface basis;
  1961.           without arguments, trace gives a list of all  defined  interfaces
  1962.           and  their  tracing  status.   Output  can be limited to a single
  1963.           interface by specifying it, and the control flags can  be  change
  1964.           by  specifying them as well. The flags are given as a hexadecimal
  1965.           number which is interpreted as follows:
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.                                                           May 28, 1991
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.                                      - 31 -
  1985.  
  1986.  
  1987.               O - Enable tracing of output packets if 1, disable if 0
  1988.               I - Enable tracing of input packets if 1, disable if 0
  1989.               T - Controls type of tracing:
  1990.              0 - Protocol headers are decoded, but data is not displayed
  1991.              1 - Protocol headers are decoded, and data (but not the
  1992.                  headers themselves) are displayed as ASCII characters,
  1993.                  64 characters/line. Unprintable characters are displayed
  1994.                  as periods.
  1995.              2 - Protocol headers are decoded, and the entire packet
  1996.                  (headers AND data) is also displayed in hexadecimal
  1997.                  and ASCII, 16 characters per line.
  1998.               B - Broadcast filter flag. If set, only packets specifically addressed
  1999.              to this node will be traced; broadcast packets will not be displayed.
  2000.           If tracefile is not specified, tracing will be to the console.
  2001.  
  2002.           3.63.  udp status
  2003.           Displays the status of all UDP receive queues.
  2004.  
  2005.           3.64.  upload [<filename>]
  2006.           Opens filename and sends it on the current session as  though  it
  2007.           were typed on the terminal.
  2008.  
  2009.           3.65.  watch
  2010.           Displays  the current software stopwatch values, with min and max
  2011.           readings for each. This facility allows a programmer  to  measure
  2012.           the  execution time of critical sections of code with microsecond
  2013.           resolution.  This command is supported only on the  IBM  PC,  and
  2014.           the  meaning  of  each stopwatch value depends on where the calls
  2015.           have been inserted for test purposes; the  distribution  copy  of
  2016.           net.exe usually has no stopwatch calls.
  2017.  
  2018.           3.66.  ?
  2019.           Same as the help command.
  2020.  
  2021.           4.  Attach Commands
  2022.           This chapter details the attach commands for the various hardware
  2023.           interface drivers. Not all of these  drivers  may  be  configured
  2024.           into  every  net.exe binary; a list of the available types may be
  2025.           obtained by entering the command attach ?.
  2026.           Some parameters are accepted by several drivers. They are:
  2027.  
  2028.           4.0.1.  <bufsize>
  2029.           For asynchronous devices (eg. COM ports operating in SLIP or  NRS
  2030.           mode)  this  parameter  specifies the size of the receiver's ring
  2031.           buffer.  It should be large enough to hold incoming data at  full
  2032.           line  speed  for  the longest time that the system may be busy in
  2033.           MS-DOS or the BIOS doing a slow I/O operation (eg.  to  a  floppy
  2034.           disk). A kilobyte is usually more than sufficient.
  2035.           For  synchronous  devices  (eg. the scc, hs, pc100, hapn and drsi
  2036.           interfaces operating in HDLC mode), the bufsize parameter  speci-
  2037.           fies  the  largest  packet that may be received on the interface.
  2038.           This should be set by mutual agreement among stations sharing the
  2039.           channel.  For  standard AX.25 with a maximum I-frame data size of
  2040.           256 bytes, a value of  325  should  provide  an  adequate  safety
  2041.  
  2042.  
  2043.  
  2044.                                                           May 28, 1991
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.                                      - 32 -
  2051.  
  2052.  
  2053.           margin.  On higher speed channels (eg. 56kb/s) larger values (eg.
  2054.           2K bytes) will provide much better performance  and  allow  full-
  2055.           sized Ethernet packets to be carried without fragmentation.
  2056.  
  2057.           4.0.2.  <ioaddr>
  2058.           The base address of the interface's control registers, in hex.
  2059.  
  2060.           4.0.3.  <vector>
  2061.           The interface's hardware interrupt (IRQ) vector, in hex.
  2062.  
  2063.           4.0.4.  <iface>
  2064.           The  name  (an arbitrary character string) to be assigned to this
  2065.           interface. It is used to refer to the interface in  ifconfig  and
  2066.           route commands and in trace output.
  2067.  
  2068.           4.0.5.  <mtu>
  2069.           The  Maximum  Transmission Unit size, in bytes.  Datagrams larger
  2070.           than this limit will be fragmented at the IP layer  into  smaller
  2071.           pieces. For AX.25 UI frames, this limits the size of the informa-
  2072.           tion field.  For AX.25 I frames, however, the ax25 paclen parame-
  2073.           ter  is  also  relevant.   If  the  datagram or fragment is still
  2074.           larger than paclen, it is also fragmented at the AX.25 level  (as
  2075.           opposed  to  the  IP  level)  before transmission.  (See the ax25
  2076.           paclen command for further information).
  2077.  
  2078.           4.0.6.  <speed>
  2079.           The speed in bits per second (eg. 2400).
  2080.  
  2081.           4.1.  attach 3c500 <ioaddr> <vector> arpa  <iface>  <qlen>  <mtu>
  2082.           [<ip_addr>]
  2083.           Attach  a  3Com  3C501  Ethernet  interface.  qlen is the maximum
  2084.           allowable transmit queue length.  If the ip_addr parameter is not
  2085.           given,  the value associated with a prior ip address command will
  2086.           be used.
  2087.           The use of this driver is not recommended; use the packet  driver
  2088.           interface with the loadable 3C501 packet driver instead.
  2089.  
  2090.           4.2.   attach  asy  <ioaddr>  <vector>  ax25  |  nrs | ppp | slip
  2091.           <iface> <bufsize> <mtu> <speed> [<crv>]
  2092.           Attach a standard PC "com port" (asynchronous serial port), using
  2093.           the  National 8250 or 16550A chip.  Standard values on the IBM PC
  2094.           and clones for ioaddr and vector are 0x3f8 and 4  for  COM1,  and
  2095.           0x2f8 and 3 for COM2.  If the port uses a 16550A chip, it will be
  2096.           detected automatically and the FIFOs enabled.
  2097.  
  2098.           4.2.1.  ax25
  2099.           Similar to slip, except that an AX.25 header and a KISS TNC  con-
  2100.           trol  header  are  added to the front of the datagram before SLIP
  2101.           encoding.  Either UI (connectionless) or I  (connection-oriented)
  2102.           AX.25 frames can be used; see the mode command for details.
  2103.  
  2104.           4.2.2.  nrs
  2105.           Use  the NET/ROM asynchronous framing technique for communication
  2106.           with a local NET/ROM TNC.
  2107.  
  2108.  
  2109.  
  2110.                                                           May 28, 1991
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.                                      - 33 -
  2117.  
  2118.  
  2119.           4.2.3.  ppp
  2120.           Point-to-Point-Protocol.  Encapsulates datagrams in an  HDLC-like
  2121.           frame.  This is a new Internet standard for point-to-point commu-
  2122.           nication, compatible with CCITT standards.
  2123.  
  2124.           4.2.4.  slip
  2125.           Serial  Line  Internet  Protocol.   Encapsulates   IP   datagrams
  2126.           directly in SLIP frames without a link header. This is for opera-
  2127.           tion on point-to-point lines and is compatible with  4.2BSD  UNIX
  2128.           SLIP.
  2129.  
  2130.           4.2.5.  <crv>
  2131.           The  optional  flags  are a string of characters "crv": c enables
  2132.           RTS/CTS detection, r enables RLSD (Carrier Detect) physical  line
  2133.           sensing, v enables Van Jacobson TCP/IP Header Compression, and is
  2134.           valid only for SLIP.
  2135.  
  2136.           4.3.  attach drsi <ioaddr> <vector> ax25 <iface> <bufsize>  <mtu>
  2137.           <ch_a_speed> <ch_b_speed>
  2138.           N6TTO driver for the Digital Radio Systems PCPA 8530 card.  Since
  2139.           there are two channels on the board, two interfaces are attached.
  2140.           They  will  be named iface with 'a' and 'b' appended.  bufsize is
  2141.           the receiver buffer size in bytes; it must  be  larger  than  the
  2142.           largest  frame to be received.  ch_a_speed and ch_b_speed are the
  2143.           speeds, in bits/sec, for the A and B channels, respectively.
  2144.  
  2145.           4.4.  attach eagle <ioaddr> <vector> ax25 <iface> <bufsize> <mtu>
  2146.           <speed>
  2147.           WA3CVG/NG6Q driver for the Eagle Computer card (Zilog 8530).
  2148.  
  2149.           4.5.   attach hapn <ioaddr> <vector> ax25 <iface> <bufsize> <mtu>
  2150.           csma | full
  2151.           KE3Z driver for  the  Hamilton  Amateur  Packet  Network  adapter
  2152.           (Intel  8273).   The  csma | full parameter specifies whether the
  2153.           port should operate in carrier sense multiple access (CSMA)  mode
  2154.           or in full duplex.
  2155.  
  2156.           4.6.   attach  hs  <ioaddr> <vector> ax25 <iface> <bufsize> <mtu>
  2157.           <keyup_delay> <p>
  2158.           Attach a DRSI PCPA or Eagle Computer interface card using a  spe-
  2159.           cial  "high speed" 8530 driver.  This driver uses busy-wait loops
  2160.           to send and receive each byte instead of  interrupts,  making  it
  2161.           usable  with  high speed modems (such as the WA4DSY 56kb/s modem)
  2162.           on slow systems.  This does have the side  effect  of  "freezing"
  2163.           the  system whenever the modem transmitter or receiver is active.
  2164.           This driver can operate only in CSMA mode, and it is  recommended
  2165.           that  no  other interfaces requiring small interrupt latencies be
  2166.           attached to the same machine.
  2167.           The keyup_delay parameter specifies the transmitter  keyup  delay
  2168.           in  milliseconds.  The  p value specifies the transmitter persis-
  2169.           tence value in the range 1-255; the corresponding  slot  time  is
  2170.           fixed at one hardware clock tick, about 55 ms on the PC.
  2171.           As with the other 8530 drivers, this driver actually attaches two
  2172.           interfaces, one for each 8530 channel.
  2173.  
  2174.  
  2175.  
  2176.                                                           May 28, 1991
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.                                      - 34 -
  2183.  
  2184.  
  2185.           4.7.  attach packet <intvec> <iface> <txqlen> <mtu>
  2186.           Attach a separate software "packet driver" meeting the FTP  Soft-
  2187.           ware, Inc, Software Packet Driver specification.  The driver must
  2188.           have already been installed as a  TSR  (e.g.,  by  invocation  in
  2189.           autoexec.bat).   Packet  drivers  in  the Ethernet, ARCNET, SLIP,
  2190.           SLFP, and KISS/AX25 classes are supported.
  2191.           intvec is the software interrupt vector used for communication to
  2192.           the  packet  driver,  and txqlen is the maximum number of packets
  2193.           that will be allowed on the transmit queue.
  2194.  
  2195.           4.8.  attach  pc100  <ioaddr>  <vector>  ax25  <iface>  <bufsize>
  2196.           <speed>
  2197.           Driver  for  the  PACCOMM  PC-100  (Zilog 8530) card.  Only AX.25
  2198.           operation is supported.
  2199.  
  2200.           4.9.  attach scc <devices> init <addr>  <spacing>  <Aoff>  <Boff>
  2201.           <Dataoff> <intack> <vec> [p|r]<clock> [<hdwe>] [<param>]
  2202.           PE1CHL  driver to initialize a generic SCC (8530) interface board
  2203.           prior to actually attaching it. The parameters are as follows:
  2204.  
  2205.           4.9.1.  <devices>
  2206.           The number of SCC chips to support.
  2207.  
  2208.           4.9.2.  <addr>
  2209.           The base address of the first SCC chip (hex).
  2210.  
  2211.           4.9.3.  <spacing>
  2212.           The spacing between the SCC chip base addresses.
  2213.  
  2214.           4.9.4.  <Aoff>
  2215.           The offset from a chip's base address to its  channel  A  control
  2216.           register.
  2217.  
  2218.           4.9.5.  <Boff>
  2219.           The  offset  from  a chip's base address to its channel B control
  2220.           register.
  2221.  
  2222.           4.9.6.  <Dataoff>
  2223.           The offset from each channel's control register to its data  reg-
  2224.           ister.
  2225.  
  2226.           4.9.7.  <intack>
  2227.           The address of the INTACK/Read Vector port. If none, specify 0 to
  2228.           read from RR3A/RR2B.
  2229.  
  2230.           4.9.8.  <vec>
  2231.           The CPU interrupt vector for all connected SCCs.
  2232.  
  2233.           4.9.9.  <clock>
  2234.           The clock frequency (PCLK/RTxC) of all  SCCs  in  hertz.   Prefix
  2235.           with 'p' for PCLK, 'r' for RTxC clock (for baudrate gen).
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.                                                           May 28, 1991
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                                      - 35 -
  2249.  
  2250.  
  2251.           4.9.10.  <hdwe>
  2252.           Optional  hardware  type. The following values are currently sup-
  2253.           ported: 1 - Eagle card, 2 - PACCOMM PC-100, 4  -  PRIMUS-PC  card
  2254.           (DG9BL), 8 - DRSI PCPA card.
  2255.  
  2256.           4.9.11.  <param>
  2257.           Optional  extra parameter. At present, this is used only with the
  2258.           PC-100 and PRIMUS-PC cards to set the modem mode. The value  0x22
  2259.           is  used with the PC-100 and 0x2 is used with the PRIMUS-PC card.
  2260.           The attach scc ... init command must be given before  the  inter-
  2261.           faces are actually attached with the following command.
  2262.  
  2263.           4.10.   attach  scc <chan> slip | kiss | nrs | ax25 <iface> <mtu>
  2264.           <speed> <bufsize> [<call>]
  2265.           Attach an initialized SCC port to the system. The parameters  are
  2266.           as follows:
  2267.  
  2268.           4.10.1.  <chan>
  2269.           The  SCC  channel number to attach, 0 or 1 for the first chip's A
  2270.           or B port, 2 or 3 for the second chip's A or B port, etc.
  2271.  
  2272.           4.10.2.  slip | kiss | nrs | ax25
  2273.           The operating mode of the interface. slip, kiss and nrs all oper-
  2274.           ate  the  port  hardware  in asynchronous mode; slip is Internet-
  2275.           standard serial line IP mode, kiss generates SLIP frames contain-
  2276.           ing  KISS  TNC  commands  and  AX.25 packets and nrs uses NET/ROM
  2277.           local serial link framing conventions to carry  NET/ROM  packets.
  2278.           Selecting ax25 mode puts the interface into synchronous HDLC mode
  2279.           that is suitable for direct connection to  a  half  duplex  radio
  2280.           modem.
  2281.  
  2282.           4.10.3.  <speed>
  2283.           The  interface  speed in bits per second (eg. 1200).  Prefix with
  2284.           'd' when an external divider is  available  to  generate  the  TX
  2285.           clock.  When  the clock source is PCLK, this can be a /32 divider
  2286.           between TRxC and RTxC. When the clock is at  RTxC,  the  TX  rate
  2287.           must  be  supplied  at  TRxC. This is needed only for full duplex
  2288.           synchronous operation. When this  arg  is  given  as  'ext',  the
  2289.           transmit  and  receive clocks are external, and the internal baud
  2290.           rate generator (BRG) and digital phase locked loop (DPLL) are not
  2291.           used.
  2292.  
  2293.           4.11.  Attach Examples
  2294.           Here are some examples of the attach command:
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.                                                           May 28, 1991
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.                                      - 36 -
  2315.  
  2316.  
  2317.           # Attach a 3Com Ethernet controller using the standard 3Com address and
  2318.           # vector (i.e., as it comes out of the box) to use ARPA-standard encapsulation.
  2319.           # The receive queue is limited to 5 packets, and outgoing packets larger
  2320.           # than 1500 bytes will be fragmented
  2321.           attach 3c500 0x300 3 arpa ec0 5 1500
  2322.  
  2323.           # Attach the PC asynch card normally known as "com1" (the first controller)
  2324.           # to operate in point-to-point slip mode at 9600 baud, calling it "sl0".
  2325.           # A 1024 byte receiver ring buffer is allocated. Outgoing packets larger
  2326.           # than 256 bytes are fragmented.
  2327.           attach asy 0x3f8 4 slip sl0 1024 256 9600
  2328.  
  2329.           # Attach the secondary PC asynch card ("com2") to operate in AX.25 mode
  2330.           # with an MTU of 576 bytes at 9600 baud with a KISS TNC, calling it "ax0".
  2331.           # By default, IP datagrams are sent in UI frames
  2332.           attach asy 0x2f8 3 ax25 ax0 1024 576 9600
  2333.  
  2334.           # Attach the packet driver loaded at interrupt 0x7e
  2335.           # The packet driver is for an Ethernet interface
  2336.           attach packet 0x7e ethernet 8 1500
  2337.  
  2338.           5.  FTP Subcommands
  2339.           During  converse mode with an FTP server, everything typed on the
  2340.           console is first examined to see if it is  a  locally-known  com-
  2341.           mand.  If  not, the line is passed intact to the remote server on
  2342.           the control channel. If it is one of the following commands, how-
  2343.           ever,  it is executed locally. (Note that this generally involves
  2344.           other commands being sent to the remote  server  on  the  control
  2345.           channel.)
  2346.  
  2347.           5.1.  dir [<file> | <directory> [<local file>]]
  2348.           Without  arguments, dir requests that a full directory listing of
  2349.           the remote server's current directory be sent  to  the  terminal.
  2350.           If  one  argument is given, this is passed along in the LIST com-
  2351.           mand; this can be a specific file or subdirectory that  is  mean-
  2352.           ingful to the remote file system. If two arguments are given, the
  2353.           second is taken as the local file into which the directory  list-
  2354.           ing  should  be  put (instead of being sent to the console).  The
  2355.           PORT command is used before the LIST command is sent.
  2356.  
  2357.           5.2.  get <remote file> [<local file>]
  2358.           Asks the remote server to send the file specified  in  the  first
  2359.           argument.  The second argument, if given, will be the name of the
  2360.           file on the local machine; otherwise it will have the  same  name
  2361.           as on the remote machine.  The PORT and RETR commands are sent on
  2362.           the control channel.
  2363.  
  2364.           5.3.  hash
  2365.           A synonym for the verbose 3 command.
  2366.  
  2367.           5.4.  ls [<file> | <directory> [<local file>]]
  2368.           ls is identical to the dir command except that the "NLST" command
  2369.           is sent to the server instead of the "LIST" command. This results
  2370.           in an abbreviated directory listing, i.e., one showing  only  the
  2371.  
  2372.  
  2373.  
  2374.                                                           May 28, 1991
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.                                      - 37 -
  2381.  
  2382.  
  2383.           file names themselves without any other information.
  2384.  
  2385.           5.5.  mget <file> [<file> ...]
  2386.           Fetch  a  collection  of  files  from  the server. File names may
  2387.           include wild  card  characters;  they  will  be  interpreted  and
  2388.           expanded into a list of files by the remote system using the NLST
  2389.           command. The files will have the same name on  the  local  system
  2390.           that they had on the server.
  2391.  
  2392.           5.6.  mkdir <remote directory>
  2393.           Creates a directory on the remote machine.
  2394.  
  2395.           5.7.  mput <file> [<file> ...]
  2396.           Send  a collection of files to the server. File names may include
  2397.           wild card characters; they will be expanded locally into  a  list
  2398.           of  files  to  be  sent. The files will have the same name on the
  2399.           server as on the local system.
  2400.  
  2401.           5.8.  put <local file> [<remote file>]
  2402.           Asks the remote server to accept data, creating the file named in
  2403.           the  first  argument.  The second argument, if given, will be the
  2404.           name of the file on the remote machine; otherwise  it  will  have
  2405.           the  same  name  as on the local machine.  The PORT and STOR com-
  2406.           mands are sent on the control channel.
  2407.  
  2408.           5.9.  rmdir <remote directory>
  2409.           Deletes a directory on the remote machine.
  2410.  
  2411.           5.10.  type [a | i | l <bytesize>]
  2412.           Tells both the local client and remote server the  type  of  file
  2413.           that is to be transferred.  The default is 'a', which means ASCII
  2414.           (i.e., a text file).  Type 'i' means  image,  i.e.,  binary.   In
  2415.           ASCII  mode,  files  are  sent as varying length lines of text in
  2416.           ASCII separated by cr/lf sequences; in IMAGE mode, files are sent
  2417.           exactly  as they appear in the file system.  ASCII mode should be
  2418.           used whenever transferring text between dissimilar  systems  (eg.
  2419.           UNIX  and  MS-DOS)  because of their different end-of-line and/or
  2420.           end-of-file conventions.   When  exchanging  text  files  between
  2421.           machines  of  the same type, either mode will work but IMAGE mode
  2422.           is usually faster.  Naturally, when exchanging raw  binary  files
  2423.           (executables,  compressed archives, etc) IMAGE mode must be used.
  2424.           Type 'l' (logical byte size) is used when exchanging binary files
  2425.           with  remote servers having oddball word sizes (eg. DECSYSTEM-10s
  2426.           and 20s).  Locally it works exactly like IMAGE,  except  that  it
  2427.           notifies  the  remote system how large the byte size is. bytesize
  2428.           is typically 8.  The type command sets the  local  transfer  mode
  2429.           and generates the TYPE command on the control channel.
  2430.  
  2431.           5.11.  verbose [0 | 1 | 2 | 3]
  2432.           Set  or  display  the  level of message output in file transfers.
  2433.           Verbose 0 gives the least output, and verbose 3 the most, as fol-
  2434.           lows:
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.                                                           May 28, 1991
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.                                      - 38 -
  2447.  
  2448.  
  2449.           0 - Display error messages only.
  2450.           1 - Display error messages plus a one-line summary after each transfer
  2451.               giving the name of the file, its size, and the transfer time and rate.
  2452.           2 - Display error and summary messages plus the progress messages generated
  2453.               by the remote FTP server. (This setting is the default.)
  2454.           3 - Display all messages. In addition, a "hash mark" (#) is displayed for
  2455.               every 1,000 bytes sent or received.
  2456.           If  a command is sent to the remote server because it is not rec-
  2457.           ognized locally, the response is always displayed, regardless  of
  2458.           the  setting of verbose.  This is necessary for commands like pwd
  2459.           (display working directory), which  would  otherwise  produce  no
  2460.           message at all if verbose were set to 0 or 1.
  2461.  
  2462.           6.  Dialer Subcommands
  2463.           Each  dialer  command  may (should) have a different dialer file.
  2464.           The file resides in the configuration directory, as specified  in
  2465.           the  Installation section (see chapter 1).  A typical dialer file
  2466.           might be:
  2467.                # Set the speed, and toggle DTR to ensure modem is in command mode.
  2468.                control down
  2469.                wait 3000
  2470.                speed 2400
  2471.                control up
  2472.                wait 3000
  2473.                # Dial, and wait for connection
  2474.                send "atdt555-1212\r"
  2475.                wait 45000 "CONNECT " speed
  2476.                wait 2000
  2477.                # PAD specific initialization
  2478.                send "\r"
  2479.                wait 15000 "Terminal ="
  2480.                send "ppp\r"
  2481.                wait 10000 "\r\n"
  2482.  
  2483.           6.0.1.  control down | up
  2484.           Control asy interface.  The down option drops DTR and  RTS.   The
  2485.           up option asserts DTR and RTS.
  2486.  
  2487.           6.0.2.  send "string"
  2488.           This dialer command will write the specified string to the inter-
  2489.           face.  The string quote marks are required, and  the  string  may
  2490.           not contain embedded control characters.  However, the standard C
  2491.           string escape sequences are recognized (\0 should not be used).
  2492.  
  2493.           6.0.3.  speed [ 9600 | 4800 | 2400 | 1200 | 300 ]
  2494.           This dialer command will set the speed of the interface to one of
  2495.           the available speeds.  If the speed is missing, the speed will be
  2496.           displayed in the dialer session window.
  2497.  
  2498.           6.0.4.  wait <milliseconds> [ "test string" ] [ speed ]
  2499.           If only the time is specified, the dialer pauses for the  desired
  2500.           number of milliseconds.
  2501.           Otherwise,  the dialer reads until the test string is detected on
  2502.           the interface.  If the string is not detected within the  desired
  2503.  
  2504.  
  2505.  
  2506.                                                           May 28, 1991
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.                                      - 39 -
  2513.  
  2514.  
  2515.           time,  the  autodialer  will  reset.   The string quote marks are
  2516.           required, and the string may not contain embedded control charac-
  2517.           ters.  However, the standard C string escape sequences are recog-
  2518.           nized (\0 should not be used).
  2519.           Finally, if the speed parameter is  specified,  the  dialer  will
  2520.           continue  to  read characters until a non-digit is detected.  The
  2521.           string read is converted to an  integer,  and  used  to  set  the
  2522.           interface  speed.   If  the  trailing  non-digit  is not detected
  2523.           within the desired time, or the integer  value  is  not  a  valid
  2524.           speed,  the  autodialer  will reset.  The speed feature is useful
  2525.           for reading back the CONNECT <speed> message generated by  Hayes-
  2526.           compatible modems.
  2527.  
  2528.           7.  The /ftpusers File
  2529.           Since MS-DOS is a single-user operating system (some might say it
  2530.           is a glorified bootstrap loader), it provides no access  control;
  2531.           all  files can be read, written or deleted by the local user.  It
  2532.           is usually undesirable to give such open access to  a  system  to
  2533.           remote  network users.  Net.exe therefore provides its own access
  2534.           control mechanisms.
  2535.           The file /ftpusers controls remote FTP and mailbox  access.   The
  2536.           FTP  default  is  no access; if this file does not exist, the FTP
  2537.           server will be unusable.  A remote user must first  "log  in"  to
  2538.           the  system  with the USER and PASS commands, giving a valid name
  2539.           and password listed in /ftpusers, before he or she  can  transfer
  2540.           files.
  2541.           Each entry in /ftpusers consists of a single line of the form
  2542.           username password /path permissions
  2543.           There  must be exactly four fields, and there must be exactly one
  2544.           space between each field.  Comments may be added after  the  last
  2545.           field.  Comment lines begin with '#' in column one.
  2546.           username is the user's login name.
  2547.           password  is  the  required password.  Note that this is in plain
  2548.           text; therefore it is not a good idea to give general  read  per-
  2549.           mission  to  the  root  directory.   A  password of '*' (a single
  2550.           asterisk) means that any password is acceptable.
  2551.           /path is the allowable prefix on accessible  files.   Before  any
  2552.           file  or directory operation, the current directory and the user-
  2553.           specified file name are joined to form an absolute path  name  in
  2554.           "canonical"  form  (i.e.,  a full path name starting at the root,
  2555.           with "./" and "../" references, as well as redundant /'s,  recog-
  2556.           nized  and  removed).   The  result MUST begin with the allowable
  2557.           path prefix; if not, the operation is denied.   This  field  must
  2558.           always begin with a "/", i.e., at the root directory.
  2559.           permissions  is  a  decimal  number granting permission for read,
  2560.           create and write operations.  If the low order bit (0x1) is  set,
  2561.           the  user is allowed to read a file subject to the path name pre-
  2562.           fix restriction.  If the next bit  (0x2)  is  set,  the  user  is
  2563.           allowed to create a new file if it does not overwrite an existing
  2564.           file.  If the third bit (0x4) is set,  the  user  is  allowed  to
  2565.           write a file even if it overwrites an existing file, and in addi-
  2566.           tion he may delete files.  Again, all operations are allowed sub-
  2567.           ject  to  the  path name prefix restrictions.  Permissions may be
  2568.           combined by adding bits, for example, 0x3 (=  0x2  +  0x1)  means
  2569.  
  2570.  
  2571.  
  2572.                                                           May 28, 1991
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.                                      - 40 -
  2579.  
  2580.  
  2581.           that  the user is given read and create permission, but not over-
  2582.           write/delete permission.
  2583.           For example, suppose /ftpusers on machine  pc.ka9q.ampr.org  con-
  2584.           tains the line
  2585.           friendly test /testdir 7
  2586.           A session using this account would look like this:
  2587.           net> ftp pc.ka9q.ampr.org
  2588.           Resolving pc.ka9q.ampr.org... Trying 128.96.160.1...
  2589.           FTP session 1 connected to pc.ka9q.ampr.org
  2590.           220 pc.ka9q.ampr.org FTP version 900418 ready at Mon May 7 16:27:18 1990
  2591.           Enter user name: friendly
  2592.           331 Enter PASS command
  2593.           Password: test [not echoed]
  2594.           230 Logged in
  2595.           ftp>
  2596.           The user now has read, write, overwrite and delete privileges for
  2597.           any file under /testdir; he may not access any other files.
  2598.           Here are some more sample entries in /ftpusers:
  2599.           karn foobar / 7         # User "karn" with password "foobar" may read,
  2600.                                   # write, overwrite and delete any file on the
  2601.                                   # system.
  2602.  
  2603.           guest bletch /g/bogus 3 # User "guest" with password "bletch" may read
  2604.                                   # any file under /g/bogus and its subdirectories,
  2605.                                   # and may create a new file as long as it does
  2606.                                   # not overwrite an existing file. He may NOT
  2607.                                   # delete any files.
  2608.  
  2609.           anonymous * /public 1   # User "anonymous" (any password) may read files
  2610.                                   # under /public and its subdirectories; he may
  2611.                                   # not create, overwrite or delete any files.
  2612.           This last entry is the standard convention for keeping a  reposi-
  2613.           tory  of public files; in particular, the username "anonymous" is
  2614.           an established ARPA convention.
  2615.  
  2616.           8.  The domain.txt File
  2617.           Net.exe translates domain names (eg.  "pc.ka9q.ampr.org")  to  IP
  2618.           addresses  (eg.  128.96.160.3)  through  the  use  of an Internet
  2619.           Domain Name resolver and a local "cache" file, domain.txt.  When-
  2620.           ever  the  user  specifies  a  domain  name,  the  local cache is
  2621.           searched for the desired entry.  If it is present, it is used; if
  2622.           not,  and  if domain name server(s) have been configured, a query
  2623.           is sent over the network to the current server.   If  the  server
  2624.           responds,  the  answer is added to the domain.txt file for future
  2625.           use.  If the server does not respond, any additional  servers  on
  2626.           the  list  are tried in a round-robin fashion until one responds,
  2627.           or the retry limit is reached (see the domain retry command).  If
  2628.           domain.txt  does  not  contain the desired entry and there are no
  2629.           configured domain name  servers,  then  the  request  immediately
  2630.           fails.
  2631.           If  a  domain  name server is available, and if all references to
  2632.           host-ids in your /autoexec.net file are  in  IP  address  format,
  2633.           then  it  is possible to start with a completely empty domain.txt
  2634.           file and have net.exe build it for you.  However, you may wish to
  2635.  
  2636.  
  2637.  
  2638.                                                           May 28, 1991
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.                                      - 41 -
  2645.  
  2646.  
  2647.           add  your own entries to domain.txt, either because you prefer to
  2648.           use symbolic domain names in your /autoexec.net file or you don't
  2649.           have access to a domain server and you need to create entries for
  2650.           all of the hosts you may wish to access.
  2651.           Each entry takes one line, and the fields are  separated  by  any
  2652.           combination of tabs or spaces.  For example:
  2653.           pc.ka9q.ampr.org.    IN A  128.96.160.3
  2654.           IN is the class of the record.  It means Internet, and it will be
  2655.           found in all entries.  A is the type of the record, and it  means
  2656.           that  this  is  an  address record.  Domain name pc.ka9q.ampr.org
  2657.           therefore has Internet address 128.96.160.3.
  2658.           Another possible entry is the CNAME (Canonical Name) record.  For
  2659.           example:
  2660.           ka9q.ampr.org.       IN CNAME  pc.ka9q.ampr.org.
  2661.           This  says  that domain name "ka9q.ampr.org" is actually an alias
  2662.           for  the  system  with  (primary,  or  canonical)   domain   name
  2663.           "pc.ka9q.ampr.org."   When a domain name having a CNAME record is
  2664.           given to net.exe, the system automatically follows the  reference
  2665.           to  the canonical name and returns the IP address associated with
  2666.           that entry.
  2667.           Entries added automatically by net.exe will  have  an  additional
  2668.           field  between  the  domain  name  and the class (IN) field.  For
  2669.           example:
  2670.           pc.ka9q.ampr.org.    3600  IN  A  128.96.160.3
  2671.           This is the time-to-live value, in seconds, associated  with  the
  2672.           record  received  from  the  server.  Clients  (such  as net.exe)
  2673.           caching these records are supposed to delete them after the time-
  2674.           to-live  interval  has expired, allowing for the possibility that
  2675.           the information in the record may become out of date.
  2676.           This implementation of net.exe will decrement the  TTL  to  zero,
  2677.           but will not delete the record unless the "clean" flag is on (see
  2678.           the domain cache clean command).  When a  remote  server  is  not
  2679.           available, the old entry will be used.
  2680.           When  the  TTL  value  is missing (as in the examples above), the
  2681.           record will never expire, and must be  managed  by  hand.   Since
  2682.           domain.txt  is  a plain text file, it may be easily edited by the
  2683.           user to add, change or delete records.
  2684.           Additional types of records include MX (mail exchanger), NS (name
  2685.           server)  and  SOA  (start  of authority) may appear in domain.txt
  2686.           from remote server  responses.  Only  MX  is  currently  used  by
  2687.           net.exe  (in  the  mailbox).  The  others are retained for future
  2688.           development (such as the incorporation of a smarter resolver or a
  2689.           full-blown domain name server).
  2690.  
  2691.           9.  Setting Bufsize, Paclen, Maxframe, MTU, MSS and Window
  2692.           Many  net.exe  users  are confused by these parameters and do not
  2693.           know how to set them properly. This  chapter  will  first  review
  2694.           these  parameters and then discuss how to choose values for them.
  2695.           Special emphasis is given to avoiding  interoperability  problems
  2696.           that  may  appear when communicating with non-net.exe implementa-
  2697.           tions of AX.25.
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.                                                           May 28, 1991
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.                                      - 42 -
  2711.  
  2712.  
  2713.           9.1.  Hardware Parameters
  2714.  
  2715.           9.1.1.  Bufsize
  2716.           This parameter is required by most  of  net.exe's  built-in  HDLC
  2717.           drivers  (eg. those for the DRSI PCPA and the Paccomm PC-100). It
  2718.           specifies the size  of  the  buffer  to  be  allocated  for  each
  2719.           receiver  port.  HDLC  frames  larger  than  this value cannot be
  2720.           received.
  2721.           There is no default bufsize; it must be specified in  the  attach
  2722.           command for the interface.
  2723.  
  2724.           9.2.  AX25 Parameters
  2725.  
  2726.           9.2.1.  Paclen
  2727.           Paclen  limits  the  size  of the data field in an AX.25 I-frame.
  2728.           This value does not include the AX.25  protocol  header  (source,
  2729.           destination and digipeater addresses).
  2730.           Since  unconnected-mode  (datagram)  AX.25  uses  UI frames, this
  2731.           parameter has no effect in unconnected mode.
  2732.           The default value of paclen is 256 bytes.
  2733.  
  2734.           9.2.2.  Maxframe
  2735.           This parameter controls the number of I-frames that  net.exe  may
  2736.           send  on  an AX.25 connection before it must stop and wait for an
  2737.           acknowledgement.  Since the AX.25/LAPB sequence number field is 3
  2738.           bits wide, this number cannot be larger than 7.
  2739.           Since  unconnected-mode  (datagram)  AX.25 uses UI frames that do
  2740.           not have sequence numbers,  this  parameter  does  not  apply  to
  2741.           unconnected mode.
  2742.           The default value of maxframe in net.exe is 1.
  2743.  
  2744.           9.3.  IP and TCP Parameters
  2745.  
  2746.           9.3.1.  MTU
  2747.           The  MTU  (Maximum  Transmission  Unit) is an interface parameter
  2748.           that limits the size of the largest IP datagram that it may  han-
  2749.           dle.   IP  datagrams  routed to an interface that are larger than
  2750.           its MTU are each split into two or more fragments.  Each fragment
  2751.           has its own IP header and is handled by the network as if it were
  2752.           a distinct IP datagram, but when it arrives at the destination it
  2753.           is  held by the IP layer until all of the other fragments belong-
  2754.           ing to the original datagram have arrived. Then they are reassem-
  2755.           bled  back  into the complete, original IP datagram.  The minimum
  2756.           acceptable interface MTU  is  28  bytes:  20  bytes  for  the  IP
  2757.           (fragment) header, plus 8 bytes of data.
  2758.           There  is no default MTU in net.exe; it must be explicitly speci-
  2759.           fied for each interface as part of the attach command.
  2760.  
  2761.           9.3.2.  MSS
  2762.           MSS (Maximum Segment Size) is a TCP-level parameter  that  limits
  2763.           the  amount of data that the remote TCP will send in a single TCP
  2764.           packet. MSS values are exchanged in the SYN (connection  request)
  2765.           packets that open a TCP connection. In the net.exe implementation
  2766.           of TCP, the MSS actually used by TCP is further reduced in  order
  2767.  
  2768.  
  2769.  
  2770.                                                           May 28, 1991
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.                                      - 43 -
  2777.  
  2778.  
  2779.           to  avoid  fragmentation  at the local IP interface. That is, the
  2780.           local TCP asks IP for the MTU of the interface that will be  used
  2781.           to reach the destination. It then subtracts 40 from the MTU value
  2782.           to allow for the overhead of the  TCP  and  IP  headers.  If  the
  2783.           result  is  less than the MSS received from the remote TCP, it is
  2784.           used instead.
  2785.           The default value of MSS is 512 bytes.
  2786.  
  2787.           9.3.3.  Window
  2788.           This is a TCP-level parameter that controls  how  much  data  the
  2789.           local  TCP  will allow the remote TCP to send before it must stop
  2790.           and wait for an acknowledgement. The actual window value used  by
  2791.           TCP  when  deciding  how much more data to send is referred to as
  2792.           the effective window.  This is the smaller  of  two  values:  the
  2793.           window advertised by the remote TCP minus the unacknowledged data
  2794.           in flight, and the congestion window, an  automatically  computed
  2795.           time-varying estimate of how much data the network can handle.
  2796.           The default value of Window is 2048 bytes.
  2797.  
  2798.           9.4.  Discussion
  2799.  
  2800.           9.4.1.  IP Fragmentation vs AX.25 Segmentation
  2801.           IP-level  fragmentation  often  makes it possible to interconnect
  2802.           two dissimilar networks, but it is best avoided  whenever  possi-
  2803.           ble.   One  reason is that when a single IP fragment is lost, all
  2804.           other fragments belonging to the same  datagram  are  effectively
  2805.           also  lost  and  the entire datagram must be retransmitted by the
  2806.           source.  Even without loss, fragments require the  allocation  of
  2807.           temporary  buffer memory at the destination, and it is never easy
  2808.           to decide how long to wait for missing fragments before giving up
  2809.           and  discarding  those  that  have already arrived.  A reassembly
  2810.           timer controls this process.  In net.exe  it  is  (re)initialized
  2811.           with  the  ip  rtimer  parameter  (default  30  seconds) whenever
  2812.           progress is made in reassembling a datagram (i.e., a new fragment
  2813.           is  received).   It  is  not  necessary that all of the fragments
  2814.           belonging to a datagram arrive within a single timeout  interval,
  2815.           only  that  the interval between fragments be less than the time-
  2816.           out.
  2817.           Most subnetworks that carry IP have MTUs of 576 bytes or more, so
  2818.           interconnecting  them  with subnetworks having smaller values can
  2819.           result in considerable fragmentation. For this reason, IP  imple-
  2820.           mentors  working  with  links  or  subnets having unusually small
  2821.           packet size limits are encouraged to use  transparent  fragmenta-
  2822.           tion,  that  is, to devise schemes to break up large IP datagrams
  2823.           into a sequence of link or subnet  frames  that  are  immediately
  2824.           reassembled on the other end of the link or subnet into the orig-
  2825.           inal, whole IP datagram without the use  of  IP-level  fragmenta-
  2826.           tion.  Such  a  scheme  is provided in AX.25 Version 2.1.  It can
  2827.           break a large IP or NET/ROM datagram into  a  series  of  paclen-
  2828.           sized  AX.25 segments (not to be confused with TCP segments), one
  2829.           per AX.25 I-frame, for transmission and reassemble  them  into  a
  2830.           single datagram at the other end of the link before handing it up
  2831.           to the IP or NET/ROM  module.   Unfortunately,  the  segmentation
  2832.           procedure  is  a  new  feature  in  AX.25  and  is not yet widely
  2833.  
  2834.  
  2835.  
  2836.                                                           May 28, 1991
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.                                      - 44 -
  2843.  
  2844.  
  2845.           implemented; in fact, net.exe is so far the only known  implemen-
  2846.           tation.  This  creates  some  interoperability  problems  between
  2847.           net.exe and non-net.exe nodes, in  particular,  standard  NET/ROM
  2848.           nodes being used to carry IP datagrams. This problem is discussed
  2849.           further in the section on setting the MTU.
  2850.  
  2851.           9.4.2.  Setting paclen and bufsize
  2852.           The more data you put into an AX.25  I  frame,  the  smaller  the
  2853.           AX.25  headers  are in relation to the total frame size. In other
  2854.           words, by increasing paclen, you lower the AX.25  protocol  over-
  2855.           head. Also, large data packets reduce the overhead of keying up a
  2856.           transmitter, and this can be  an  important  factor  with  higher
  2857.           speed modems. On the other hand, large frames make bigger targets
  2858.           for noise and interference. Each link has  an  optimum  value  of
  2859.           paclen that is best discovered by experiment.
  2860.           Another  thing  to remember when setting paclen is that the AX.25
  2861.           version 2.0  specification  limits  it  to  256  bytes.  Although
  2862.           net.exe can handle much larger values, some other AX.25 implemen-
  2863.           tations (including digipeaters) cannot and this may cause  inter-
  2864.           operability  problems. Even net.exe may have trouble with certain
  2865.           KISS TNCs because of fixed-size buffers. The  original  KISS  TNC
  2866.           code for the TNC-2 by K3MC can handle frames limited in size only
  2867.           by the RAM in the TNC, but some other KISS TNCs cannot.
  2868.           Net.exe's built-in HDLC drivers (SCC, PC-100, DRSI, etc) allocate
  2869.           receive  buffers according to the maximum expected frame size, so
  2870.           it is important that these devices be configured with the correct
  2871.           bufsize. To do this, you must know the size of the largest possi-
  2872.           ble frame that can be received.  The  paclen  parameter  controls
  2873.           only  the  size of the data field in an I-frame and not the total
  2874.           size of the frame as it appears on the air. The AX.25 spec allows
  2875.           up  to  8 digipeaters, so the largest possible frame is (paclen +
  2876.           72) bytes. So you should make bufsize at least this large.
  2877.           Another important consideration is that the more recent  versions
  2878.           of  NOS  improve interrupt response by maintaining a special pool
  2879.           of buffers for use by the receive routines.   These  buffers  are
  2880.           configured  by  the  memory  nibufs and memory ibufsize commands.
  2881.           ibufsize defaults to 2048 bytes. The setting of  ibufsize  limits
  2882.           bufsize;  in fact, attempting to set a larger value may cause the
  2883.           driver not to work at all. This situation can be detected by run-
  2884.           ning  the  memory status command and looking for a non-zero count
  2885.           of Ibuffail events, although these events can  also  occur  occa-
  2886.           sionally during normal operation.
  2887.           One  of  the drawbacks of AX.25 that there is no way for one sta-
  2888.           tion to tell another how large a packet it is willing to  accept.
  2889.           This  requires the stations sharing a channel to agree beforehand
  2890.           on a maximum packet size.  TCP is different, as we shall see.
  2891.  
  2892.           9.4.3.  Setting Maxframe
  2893.           For best performance on a  half-duplex  radio  channel,  maxframe
  2894.           should always be set to 1. The reasons are explained in the paper
  2895.           Link Level Protocols Revisited by  Brian  Lloyd  and  Phil  Karn,
  2896.           which  appeared  in the proceedings of the ARRL 5th Computer Net-
  2897.           working Conference in 1986.
  2898.  
  2899.  
  2900.  
  2901.  
  2902.                                                           May 28, 1991
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.                                      - 45 -
  2909.  
  2910.  
  2911.           9.4.4.  Setting MTU
  2912.           TCP/IP header overhead considerations similar  to  those  of  the
  2913.           AX.25 layer when setting paclen apply when choosing an MTU.  How-
  2914.           ever, certain subnetwork types supported by  net.exe  have  well-
  2915.           established MTUs, and these should always be used unless you know
  2916.           what you're doing: 1500 bytes for Ethernet,  and  508  bytes  for
  2917.           ARCNET.   The  MTU  for  PPP  is  automatically  negotiated,  and
  2918.           defaults to 1500.  Other subnet types, including SLIP and  AX.25,
  2919.           are not as well standardized.
  2920.           SLIP has no official MTU, but the most common implementation (for
  2921.           BSD UNIX) uses an MTU of 1006 bytes.   Although  net.exe  has  no
  2922.           hard  wired  limit  on the size of a received SLIP frame, this is
  2923.           not true for other systems.  Interoperability problems may there-
  2924.           fore result if larger MTUs are used in net.exe.
  2925.           Choosing  an MTU for an AX.25 interface is more complex. When the
  2926.           interface operates in datagram (UI-frame) mode, the paclen param-
  2927.           eter  does  not  apply. The MTU effectively becomes the paclen of
  2928.           the link.  However, as mentioned earlier, large packets  sent  on
  2929.           AX.25  connections  are  automatically segmented into I-frames no
  2930.           larger than paclen bytes.  Unfortunately, as also mentioned  ear-
  2931.           lier,  net.exe is so far the only known implementation of the new
  2932.           AX.25 segmentation procedure. This is fine as long as all of  the
  2933.           NET/ROM  nodes  along  a  path are running net.exe, but since the
  2934.           main reason net.exe supports NET/ROM is to allow use of  existing
  2935.           NET/ROM networks, this is unlikely.
  2936.           So  it is usually important to avoid AX.25 segmentation when run-
  2937.           ning IP over NET/ROM.  The way to do this is to  make  sure  that
  2938.           packets  larger than paclen are never handed to AX.25.  A NET/ROM
  2939.           transport header is 5 bytes long and  a  NET/ROM  network  header
  2940.           takes  15  bytes,  so 20 bytes must be added to the size of an IP
  2941.           datagram when figuring the size of the AX.25 I-frame data  field.
  2942.           If paclen is 256, this leaves 236 bytes for the IP datagram. This
  2943.           is the default MTU of the netrom pseudo-interface, so as long  as
  2944.           paclen  is  at  least 256 bytes, AX.25 segmentation can't happen.
  2945.           But if smaller values of paclen are used,  the  netrom  MTU  must
  2946.           also be reduced with the ifconfig command.
  2947.           On the other hand, if you're running IP directly on top of AX.25,
  2948.           chances are all of the nodes  are  running  net.exe  and  support
  2949.           AX.25 segmentation.  In this case there is no reason not to use a
  2950.           larger MTU and let AX.25 segmentation do its thing. If you choose
  2951.           an MTU on the order of 1000-1500 bytes, you can largely avoid IP-
  2952.           level fragmentation and reduce TCP/IP-level  header  overhead  on
  2953.           file  transfers  to  a very low level.  And you are still free to
  2954.           pick whatever paclen value is appropriate for the link.
  2955.  
  2956.           9.4.5.  Setting MSS
  2957.           The setting of this TCP-level parameter is somewhat less critical
  2958.           than  the IP and AX.25 level parameters already discussed, mainly
  2959.           because it is automatically lowered according to the MTU  of  the
  2960.           local  interface  when a connection is created. Although this is,
  2961.           strictly speaking, a protocol layering violation (TCP is not sup-
  2962.           posed to have any knowledge of the workings of lower layers) this
  2963.           technique does work well in practice.  However, it can be fooled;
  2964.           for  example, if a routing change occurs after the connection has
  2965.  
  2966.  
  2967.  
  2968.                                                           May 28, 1991
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.                                      - 46 -
  2975.  
  2976.  
  2977.           been opened and the new local interface has a  smaller  MTU  than
  2978.           the previous one, IP fragmentation may occur in the local system.
  2979.           The only drawback to setting a large MSS is that it  might  cause
  2980.           avoidable  fragmentation  at  some other point within the network
  2981.           path if it includes a "bottleneck" subnet  with  an  MTU  smaller
  2982.           than  that  of  the  local  interface.   (Unfortunately, there is
  2983.           presently no way to know when this is the case.  There is ongoing
  2984.           work within the Internet Engineering Task Force on a "MTU Discov-
  2985.           ery" procedure to determine the largest datagram that may be sent
  2986.           over  a  given path without fragmentation, but it is not yet com-
  2987.           plete.)  Also, since the MSS you specify is sent  to  the  remote
  2988.           system, and not all other TCPs do the MSS-lowering procedure yet,
  2989.           this might cause the  remote  system  to  generate  IP  fragments
  2990.           unnecessarily.
  2991.           On  the  other hand, a too-small MSS can result in a considerable
  2992.           performance loss, especially when operating over  fast  LANs  and
  2993.           networks  that  can  handle larger packets. So the best value for
  2994.           MSS is probably 40 less than the largest MTU on your system, with
  2995.           the 40-byte margin allowing for the TCP and IP headers. For exam-
  2996.           ple, if you have a SLIP interface with a 1006  byte  MTU  and  an
  2997.           Ethernet  interface  with a 1500 byte MTU, set MSS to 1460 bytes.
  2998.           This allows you to receive maximum-sized Ethernet packets, assum-
  2999.           ing  the path to your system does not have any bottleneck subnets
  3000.           with smaller MTUs.
  3001.  
  3002.           9.4.6.  Setting Window
  3003.           A sliding window protocol like TCP cannot transfer more than  one
  3004.           window's worth of data per round trip time interval. So this TCP-
  3005.           level parameter controls the ability of the remote TCP to keep  a
  3006.           long  "pipe"  full. That is, when operating over a path with many
  3007.           hops, offering a large TCP window will help keep all  those  hops
  3008.           busy  when you're receiving data. On the other hand, offering too
  3009.           large a window can congest the network if it  cannot  buffer  all
  3010.           that  data.  Fortunately,  new algorithms for dynamic controlling
  3011.           the effective TCP flow control window have  been  developed  over
  3012.           the past few years and are now widely deployed.  Net.exe includes
  3013.           them, and you can watch them in action with the tcp status  <tcb>
  3014.           or  socket <sockno> commands.  Look at the cwind (congestion win-
  3015.           dow) value.
  3016.           In most cases it is safe to set the TCP window to a small integer
  3017.           multiple  of  the  MSS  (eg.  4 times), or larger if necessary to
  3018.           fully utilize a high bandwidth*delay product path. One  thing  to
  3019.           keep  in  mind, however, is that advertising a certain TCP window
  3020.           value declares that the system has that much buffer space  avail-
  3021.           able  for  incoming  data.  Net.exe does not actually preallocate
  3022.           this space; it keeps it in a common pool and may well  "overbook"
  3023.           it,  exploiting  the  fact that many TCP connections are idle for
  3024.           long periods and gambling that most applications will read incom-
  3025.           ing data from an active connection as soon as it arrives, thereby
  3026.           quickly freeing the buffer memory.  However, it  is  possible  to
  3027.           run  net.exe  out  of  memory  if  excessive TCP window sizes are
  3028.           advertised and either the applications go to  sleep  indefinitely
  3029.           (eg.  suspended Telnet sessions) or a lot of out-of-sequence data
  3030.           arrives.  It is wise to keep an eye on the  amount  of  available
  3031.  
  3032.  
  3033.  
  3034.                                                           May 28, 1991
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.                                      - 47 -
  3041.  
  3042.  
  3043.           memory  and  to decrease the TCP window size (or limit the number
  3044.           of simultaneous connections) if it gets too low.
  3045.           Depending on the channel access method and link  level  protocol,
  3046.           the  use  of  a  window setting that exceeds the MSS may cause an
  3047.           increase in channel collisions. In particular, collisions between
  3048.           data  packets  and  returning acknowledgements during a bulk file
  3049.           transfer may become common. Although this is, strictly  speaking,
  3050.           not TCP's fault, it is possible to work around the problem at the
  3051.           TCP level by decreasing the window so that the protocol  operates
  3052.           in  stop-and-wait  mode.  This is done by making the window value
  3053.           equal to the MSS.
  3054.  
  3055.           9.5.  Summary
  3056.           In most cases, the default values provided by net.exe for each of
  3057.           these  parameters will work correctly and give reasonable perfor-
  3058.           mance. Only in special circumstances such  as  operation  over  a
  3059.           very  poor  link or experimentation with high speed modems should
  3060.           it be necessary to change them.
  3061.  
  3062.           10.  Mail Forwarding
  3063.  
  3064.           10.1.  Intended audience
  3065.           This section is intended for the NOS system operator desiring  to
  3066.           enable  the  forwarding  of  mail  to other systems. They are NOT
  3067.           intended as a user guide for the mail capabilities of NOS.
  3068.  
  3069.           10.2.  Background
  3070.           This section of the NOS docs deals with the intricacies  of  mail
  3071.           forwarding.  You  should  read  and understand this documentation
  3072.           thoroughly before attempting to forward mail through your NOS box
  3073.           to  the AX.25 BBS world, otherwise you might grossly misconfigure
  3074.           your system and be the  unhappy  recipient  of  flames  from  BBS
  3075.           sysops.
  3076.           This  section  does  NOT deal with the minutae of the mailbox and
  3077.           its various commands; it assumes  that  you  understand  concepts
  3078.           such  as user areas (both public and private) and how to list and
  3079.           send mail. If you need help with these, please look elsewhere  in
  3080.           the NOS docs.
  3081.           Apart  from  the  usual  domain.txt and other files necessary for
  3082.           ordinary functionality of NOS, three files are important  in  the
  3083.           mail  forwarding  process.  These are: /spool/forward.bbs, /alias
  3084.           and /spool/rewrite.  The contents of these will now be  addressed
  3085.           individually.
  3086.  
  3087.           10.3.  /spool/forward.bbs
  3088.           This  file  describes  the  actions taken by NOS in forwarding to
  3089.           AX.25 BBSes. The file contains a series  of  forwarding  records,
  3090.           each  record  being  separated  by  a line containing two or more
  3091.           hyphens. The template for a forwarding record is:
  3092.  
  3093.           BBS callsign
  3094.           Connection route
  3095.           Connection commands                <zero or more lines>
  3096.           List of areas to be forwarded      <one per line>
  3097.  
  3098.  
  3099.  
  3100.                                                           May 28, 1991
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.                                      - 48 -
  3107.  
  3108.  
  3109.           ------------                       <end of record>
  3110.  
  3111.           10.4.  BBS callsign
  3112.           This is simply the ordinary call of the  remote  BBS.  A  typical
  3113.           (but not random!) entry might be simply the line:
  3114.  
  3115.           sm0rgv
  3116.  
  3117.           The  callsign may be followed, on the same line, by a comma sepa-
  3118.           rated list of valid intervals when forwarding is to  take  place.
  3119.           Each  valid interval is a four digit number: the first two digits
  3120.           are the beginning hour of the valid interval, the last two digits
  3121.           are  the  final  hour  of the valid interval. For example, if the
  3122.           first line of a forwarding record looks like:
  3123.  
  3124.           sm0rgv 0006,1414
  3125.  
  3126.           then forwarding to sm0rgv will take place only during hours  num-
  3127.           bered  00, 01, 02, 03, 04, 05, 06 and 14. Ticks of the mbox timer
  3128.           outside of these times will not cause mail  to  be  forwarded  to
  3129.           sm0rgv. The default interval for forwarding is 0023.
  3130.  
  3131.           10.5.  Connection route
  3132.           This  is  the  method by which communication is to be established
  3133.           with the remote BBS. The first token on the line is the  type  of
  3134.           protocol  to be used. This is one of ax25, netrom or tcp. Follow-
  3135.           ing this is whatever  further  information  the  chosen  protocol
  3136.           requires  to make the connection. An example connection route for
  3137.           a simple ax25 connection on interface ax0 is:
  3138.  
  3139.           ax25 ax0 g3dlh
  3140.  
  3141.  
  3142.           10.6.  Connection commands
  3143.           Connection commands may, optionally, follow the connection route.
  3144.           These take the form of a full stop (period), followed by the com-
  3145.           mand which will be transmitted once the connection defined in the
  3146.           first line of the connection route is established.
  3147.  
  3148.           For  example,  suppose that we wish to establish a netrom connec-
  3149.           tion with sm0rgv-2, through the netrom node #sth67. Then the con-
  3150.           nection  route and connection command portion of the record would
  3151.           look like:
  3152.  
  3153.           netrom #sth67
  3154.            .c sm0rgv-2     [ Please note that the full stop would be placed at
  3155.                              the beginning of the line; I have placed it here
  3156.                              indented by one column simply so that gateways
  3157.                              which handle this message do not complain at
  3158.                              having a line beginning with a full stop; this
  3159.                              convention is followed throughout this documentation]
  3160.           If the station is reached through  digipeating,  then  the  digi-
  3161.           peater  callsigns  should be in the ax25 route to the destination
  3162.           callsign.  That is, if you wish  to  forward  traffic  to  w0ljf,
  3163.  
  3164.  
  3165.  
  3166.                                                           May 28, 1991
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.                                      - 49 -
  3173.  
  3174.  
  3175.           using k2na as a digipeater, then you should have the line:
  3176.  
  3177.           ax25 route add w0ljf k2na
  3178.  
  3179.           in your autoexec file.
  3180.  
  3181.  
  3182.           10.7.  List of areas to be forwarded
  3183.           This  is  a  list,  one  per  line, of entries in the /spool/mail
  3184.           directory which will be forwarded to the remote BBS. An entry  of
  3185.           the form:
  3186.  
  3187.           callsign
  3188.  
  3189.           will  cause  the  file /spool/mail/callsign.txt to be scanned for
  3190.           unread messages. Any such messages are sent to the remote BBS and
  3191.           deleted from the file.
  3192.  
  3193.           One can also forward user areas using this mechanism. To do this,
  3194.           simply place a line containing  the  name  of  the  area  in  the
  3195.           record. So, to forward amsat bulletins to the BBS, one would have
  3196.           a line:
  3197.  
  3198.           amsat
  3199.  
  3200.           This will search the  /spool/mail/amsat.txt  file;  any  messages
  3201.           contained  therein  which  have  not been forwarded to the BBS in
  3202.           question will be forwarded. They will NOT be deleted. The  deter-
  3203.           mining factor as to whether or not entries are deleted is that if
  3204.           the filename is present in the /spool/areas file, then  there  is
  3205.           NO deletion, otherwise there is.
  3206.  
  3207.           Please  note  that ONLY FILES IN /spool/mail are checked. In par-
  3208.           ticular, the outbound SMTP mail queue is NOT checked.
  3209.  
  3210.           10.8.  Changing the recipient address
  3211.           Normally, NOS uses the information in  the  To:  header  line  to
  3212.           determine  the parameters used by the "S" command during BBS for-
  3213.           warding. As the  To:  header  is  unchanged  by  all  /alias  and
  3214.           /spool/rewrite  machinations,  the  mail  will be sent to the BBS
  3215.           addressed precisely as the originator of the  message  typed  it.
  3216.           Occasionally,  one  might  want to change this behaviour. In this
  3217.           case, a line of the form:
  3218.  
  3219.           area  new_address
  3220.  
  3221.           in the list of areas to be forwarded will replace the  originally
  3222.           typed destination with the string new_address instead.
  3223.  
  3224.           11.  /alias
  3225.           The  alias  file is used to map LOCAL names to other names, which
  3226.           may be either local or remote; additionally, from a single  input
  3227.           message,  the  alias  file permits one to produce multiple output
  3228.           messages. Thus, typical uses for the /alias file are:  converting
  3229.  
  3230.  
  3231.  
  3232.                                                           May 28, 1991
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.                                      - 50 -
  3239.  
  3240.  
  3241.           one  local  name  to another, converting a local name to a remote
  3242.           name, and exploding a mail message so that it  is  passed  on  to
  3243.           several recipients.
  3244.  
  3245.           The format of a record in the alias file is very simple:
  3246.  
  3247.           aliasname recipient1 recipient2 recipient3
  3248.           <tab> or <SP> recipient4 ... recipientN
  3249.  
  3250.           There  is  no separation between records in the /alias file other
  3251.           than a newline.
  3252.  
  3253.           The aliasname is a local username; that is, it does  not  contain
  3254.           an  "@" symbol. When the alias file is processed, if the destina-
  3255.           tion of the message matches precisely  the  aliasname,  then  the
  3256.           mail is redirected to ALL of the alieased recipients.
  3257.  
  3258.           Scanning  of the /alias file is performed by the SMTP server. The
  3259.           SMTP timer (which controls the SMTP client)  is  kicked  whenever
  3260.           the mailbox or SMTP server queues something for delivery by SMTP.
  3261.           Mail transport within a single NOS system  is  performed  through
  3262.           the  SMTP  client/server  mechanism. The result of these facts is
  3263.           that as soon as a piece of mail is entered to  the  mailbox,  the
  3264.           SMTP client is kicked and attempts to deliver the mail (which has
  3265.           already been scanned by the rewrite mechanism -  see  below).  If
  3266.           the  mail  is  local  to  the NOS system (i.e. no "@" sign in the
  3267.           address), then the /alias file will be scanned and the name  map-
  3268.           pings take place.
  3269.  
  3270.           A few lines in the /alias file might look something like:
  3271.  
  3272.           bdale  bdale@n3eua
  3273.           local  fred@k0yum bdale@n3eua bill@ai0c.co.usa.na
  3274.              n5op@n5op jim@k0jtz n0esg@n0esg
  3275.           g4bki  g4bki@gb7bil._2712.gbr.eu
  3276.  
  3277.           The  system must know how to deliver traffic to each of the indi-
  3278.           vidual addresses in the style in which they are  entered  in  the
  3279.           /alias  file.   If the system does not know how to deliver one of
  3280.           the new addresses, then it will send it to the SMTP gateway  sta-
  3281.           tion defined by the 'smtp gateway' command.
  3282.  
  3283.           Note  that  it  is  reasonable, and sometimes desireable, to have
  3284.           alias records of the form:
  3285.  
  3286.           area   area dest1 dest2 ...
  3287.  
  3288.           As the /alias file is scanned only once (see  below),  this  does
  3289.           not result in an infinite recursion.
  3290.  
  3291.           12.  /spool/rewrite
  3292.  
  3293.           The  rewrite file is used to perform a one-to-one mapping between
  3294.           destination  addresses  as  received  by  NOS   and   destination
  3295.  
  3296.  
  3297.  
  3298.                                                           May 28, 1991
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.                                      - 51 -
  3305.  
  3306.  
  3307.           addresses as actually used by NOS. Each record within the rewrite
  3308.           file comprises a single line,  containing  either  two  or  three
  3309.           entries  separated  by  spaces.  The  first field is the template
  3310.           field; if a destination  address  matches  the  template,  it  is
  3311.           replaced by the second field. The third field, which is optional,
  3312.           is the single letter "r", which, if present, tells NOS to  rescan
  3313.           the rewrite file, using the new destination address to attempt to
  3314.           match against the templates.
  3315.  
  3316.           A template may contain asterisks. These stand for a match of  any
  3317.           number  of  characters (including zero). In the second field, the
  3318.           character "$", followed by a single digit in the range  1  to  9,
  3319.           represents the string that matched the respective asterisk in the
  3320.           template. By way of example, suppose that there is a line in  the
  3321.           rewrite file which looks like:
  3322.  
  3323.           *@* $1%$2@g1emm.ampr.org
  3324.  
  3325.           Then,  any traffic reaching the system through the mailbox or the
  3326.           SMTP server, but which is supposed to go to a remote system, will
  3327.           be  redirected  to go through g1emm.ampr.org. Suppose that a user
  3328.           logs on, and sends a message to n0gbe@nq0i. Then the rewrite file
  3329.           attempts to match "n0gbe@nq0i" against the entry *@*. It matches,
  3330.           and assignes $1 the value n0gbe, and $2 the value nq0i. The  mail
  3331.           file as written to the disk will no longer be to n0gbe@nq0i, but,
  3332.           rather,  to  n0gbe%nq0i@g1emm.ampr.org.  [The  nomenclature  sta-
  3333.           tion1%station2@station3  means  the  final  destination  is  sta-
  3334.           tion1@station2, and this traffic is  to  be  routed  through  the
  3335.           gateway station3.]
  3336.  
  3337.           As soon as a template match is found, the conversion is performed
  3338.           and scanning is stopped, unless the third "r" field  is  present,
  3339.           in which case scanning restarts from the top of the file.
  3340.  
  3341.           N.B. It is a good idea to have a line of the form:
  3342.  
  3343.           *@*.ampr.org $1@$2.ampr.org
  3344.  
  3345.           at  the beginning of your rewrite file. This will cause all ampr-
  3346.           net traffic to be caught early in the rewrite scan, and  no  fur-
  3347.           ther scanning (and, hence, no unexpected substitutions) will take
  3348.           place.
  3349.  
  3350.           12.1.  Scanning procedure
  3351.           The two files which are used  to  determine  the  disposition  of
  3352.           traffic  are scanned under slightly different circumstances. Note
  3353.           that neither the /alias nor the  /spool/rewrite  scan  makes  any
  3354.           actual changes to the contents of the traffic. In particular, the
  3355.           To: field remains exactly as it was first entered into  the  sys-
  3356.           tem.
  3357.  
  3358.           There are four possible entry routes for traffic into the system:
  3359.           SMTP, through the mailbox by a user, through  the  mailbox  by  a
  3360.           BBS,  and  via  an  external program (like BM) or creation of the
  3361.  
  3362.  
  3363.  
  3364.                                                           May 28, 1991
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.                                      - 52 -
  3371.  
  3372.  
  3373.           files manually.  NOS determines if a piece of traffic was entered
  3374.           into the system by a BBS by looking for a BBS system ID (like the
  3375.           "[NET-H$]" block issued by NOS) on the incoming connection  prior
  3376.           to messages being uploaded.
  3377.  
  3378.           12.2.  Traffic received by SMTP server
  3379.           1.  The  rewrite  file is scanned and any changes applied (unless
  3380.           the traffic was recieved through the local mailbox; in that case,
  3381.           this step does not occur);
  3382.           2.  If  the  traffic  appears  to be local then the alias file is
  3383.           scanned and any changes or explosions applied.
  3384.           3. Any copies local to  the  system  are  delivered;  copies  for
  3385.           remote delivery are placed in the SMTP queue.
  3386.  
  3387.           12.3.  Traffic received by mailbox from user
  3388.           1. The rewrite file is scanned and any changes applied;
  3389.           2. The traffic is passed to the SMTP client.
  3390.  
  3391.           12.4.  Traffic received by mailbox from BBS
  3392.           1. The rewrite file is scanned and any changes applied;
  3393.           2. The traffic is passed to the SMTP client.
  3394.  
  3395.           12.5.  Traffic entered by external mechanism
  3396.           1. No scanning occurs;
  3397.           2. The traffic is passed to the SMTP client.
  3398.  
  3399.           12.6.  Headers
  3400.           Appropriate  RFC-822  headers  are added to all incoming traffic.
  3401.           Traffic entering through the mailbox recieves a  full  complement
  3402.           of  RFC-822  headers;  traffic coming through the SMTP server has
  3403.           only a "Received:" header applied. On forwarding to a BBS, if  an
  3404.           item  of  traffic  contains BBS R: headers, the RFC-822 header is
  3405.           converted to an appropriate R: line at the time that NOS forwards
  3406.           the  message.  (This  change only occurs for BBS forwarding; for-
  3407.           warding by SMTP retains the RFC-822 headers.)
  3408.  
  3409.           12.7.  Bulletin Identifiers (BIDs)
  3410.           The AX.25 BBS system has evolved a reasonably  efficient  way  of
  3411.           reducing  overhead  when forwarding bulletins. When a bulletin is
  3412.           originated on a BBS, it is given  a  unique  bulletin  identifier
  3413.           (BID).  This BID should (theoretically) travel with the bulletin,
  3414.           and should never be changed during the distribution of  the  bul-
  3415.           letin.  Each  system  keeps track of all received BIDs. If a for-
  3416.           warding station wishes to forward a bulletin to a BBS,  then  the
  3417.           receiving station checks its local list of known BIDs and informs
  3418.           the transmitting station if it already posesses the  bulletin  in
  3419.           question.  The  NOS  mailbox  conforms to this protocol. Received
  3420.           BIDs are stored in the file /spool/history, and  are  encoded  in
  3421.           the Message-ID: header line of the message by NOS.  Messages for-
  3422.           warded from areas listed in the /areas file will have  their  BID
  3423.           (re)generated  from  the Message-ID: line. Note that ALL messages
  3424.           from public areas are forwarded with a BID, whether  or  not  the
  3425.           message was produced with the "SB" command. Like other BBSes, NOS
  3426.           will inform a transmitting station not to transmit a bulletin  if
  3427.  
  3428.  
  3429.  
  3430.                                                           May 28, 1991
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.                                      - 53 -
  3437.  
  3438.  
  3439.           it  is one that NOS already has locally; likewise, it understands
  3440.           similar messages from other stations to which it  tries  to  for-
  3441.           ward.
  3442.  
  3443.           Note  that  the BID mechanism is not a part of the SMTP world. If
  3444.           you are forwarding bulletins through SMTP, there is no  mechanism
  3445.           by  which the receiving station can reject the attempted delivery
  3446.           of a bulletin, even if it already exists on the recipient system.
  3447.           (Note  that  a  possible  workaround  is  to deliver bulletins to
  3448.           TCP/IP stations using TCP instead  of  SMTP.  Alternatively,  one
  3449.           could  use  NNTP,  as NNTP commands utilise the Message-ID: line,
  3450.           from which the BID is derived.)  The BID is preserved  no  matter
  3451.           which mechanism is used to deliver the bulletin.
  3452.  
  3453.  
  3454.           12.8.  Traffic in practice
  3455.           Now, the big question is, how does one set up these various files
  3456.           to perform intelligent manipulation of mail? A number of examples
  3457.           follow.   Note  that, often, there is more than one way to accom-
  3458.           plish an objective. The following are merely  examples  (and  not
  3459.           necessarily  the  most  efficient  method  possible for any given
  3460.           case). The format used will be:
  3461.  
  3462.           typed destination -> intended destination
  3463.  
  3464.           followed by the necessary entries in the alias (/alias),  rewrite
  3465.           (/spool/rewrite) and forwarding (/spool/forward.bbs) files.
  3466.  
  3467.  
  3468.           12.9.  Using familiar names - SMTP destination
  3469.           bdale -> bdale@n3eua.ampr.org
  3470.  
  3471.           alias:
  3472.           bdale  bdale@n3eua.ampr.org
  3473.  
  3474.           rewrite:
  3475.           forward:
  3476.  
  3477.  
  3478.           12.10.  Exploding local mail
  3479.           sysops -> nq0i, n5op@n5op.ampr.org
  3480.  
  3481.           alias:
  3482.           sysops nq0i n5op@n5op@ampr.org
  3483.  
  3484.           rewrite:
  3485.           forward:
  3486.  
  3487.  
  3488.           12.11.  Using familiar names - BBS forwarding
  3489.           g4bki -> g4bki@gb7bil._2712.gbr.eu, to be forwarded by ai0c
  3490.  
  3491.           alias:
  3492.           rewrite:
  3493.  
  3494.  
  3495.  
  3496.                                                           May 28, 1991
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.                                      - 54 -
  3503.  
  3504.  
  3505.           forward:
  3506.           ai0c
  3507.           ax25 ax1 ai0c
  3508.           g4bki g4bki@gb7bil._2712.gbr.eu
  3509.           ai0c
  3510.  
  3511.  
  3512.           12.12.  Handling incoming bulletins by subject
  3513.           tcpip@* -> nq0i, tcpip, bdale@n3eua.ampr.org, ai0c@ai0c [a BBS]
  3514.  
  3515.           alias:
  3516.           tcpip  nq0i tcpip bdale@n3eua.ampr.org ai0c
  3517.  
  3518.           rewrite:
  3519.           tcpip@* tcpip
  3520.  
  3521.           forward:
  3522.           ai0c
  3523.           ax25 ai0c
  3524.           ai0c
  3525.  
  3526.           Let's  walk  through the above example. An incoming item comes in
  3527.           addressed to TCPIP@ALLUS. A scan  is  made  through  the  rewrite
  3528.           file,  and a match is found. The item is redirected to tcpip. The
  3529.           alias file is scanned; a total of four copies of the  item  exist
  3530.           after this, three in local areas tcpip, nq0i and ai0c, and one on
  3531.           the SMTP queue (for bdale@n3eua.ampr.org). When the mailbox timer
  3532.           next  ticks, the mail in the local ai0c area will be forwarded on
  3533.           the ax1 interface to ai0c.
  3534.  
  3535.  
  3536.           12.13.  Routing based on Hierarchical addressing
  3537.  
  3538.           Wyoming -> KE7VS (SMTP)
  3539.           Nebraska -> AG0N (BBS over the NETROM, NETROM ID WNBBS)
  3540.           Europe -> W0LJF (BBS over AX.25)
  3541.  
  3542.           alias:
  3543.           rewrite:
  3544.           *.noam            $1.na r
  3545.           *.us              $1.usa.na r
  3546.           *.usa             $1.usa.na r
  3547.  
  3548.           *.ne              $1.ne.usa.na r
  3549.           *.wy              $1.wy.usa.na r
  3550.  
  3551.           *@*.*.wy.usa.na   $1%$2.$3.wy.usa.na@ke7vs
  3552.           *@*.wy.usa.na     $1%$2.wy.usa.na@ke7vs
  3553.  
  3554.           *.ne.usa.na     ag0n
  3555.  
  3556.           *.eu            w0ljf
  3557.  
  3558.           forward:
  3559.  
  3560.  
  3561.  
  3562.                                                           May 28, 1991
  3563.  
  3564.  
  3565.  
  3566.  
  3567.  
  3568.                                      - 55 -
  3569.  
  3570.  
  3571.           ag0n
  3572.           netrom ax0 wnbbs
  3573.           ag0n
  3574.           ----------
  3575.           w0ljf
  3576.           ax25 ax1 w0ljf
  3577.           w0ljf
  3578.           ----------
  3579.  
  3580.           Why is the example rewrite file apparently so  complicated?  This
  3581.           is  to handle poorly constructed hierarchical addresses in a rea-
  3582.           sonable way.  A full U.S.  hierarchical  address  has  the  form:
  3583.           callsign@BBS.#localid.state.usa.na.  Many states have no #localid
  3584.           field. In the example rewrite file above, the first  three  lines
  3585.           convert  non-standard,  but  frequently used, U.S. designators to
  3586.           the more standard format. It is common for users  not  to  use  a
  3587.           full hierarchical address if the destination is relatively local.
  3588.           For eample, a user might easily use only .wy instead of the  full
  3589.           grouping  of two lines handles this problem. Note the third, "r",
  3590.           field in all the entries so far.
  3591.  
  3592.           The remainder of the file handles properly formatted hierarchical
  3593.           addresses.  The  two  Wyoming  entries  handle the cases with and
  3594.           without a #localid field. Differentiation between these cases  is
  3595.           not necessary for BBS forwarding.
  3596.  
  3597.           12.14.  General bulletin handling
  3598.           The details of bulletin handling will vary somewhat from place to
  3599.           place, as there are several distinct styles of bulletin  handling
  3600.           currently in use in the AX.25 BBS world. In general, it is neces-
  3601.           sary to arrange one's system so that it  accepts  bulletins  from
  3602.           BBSes,  forwards  them  to one or more stations, and also handles
  3603.           intelligently bulletins input by users into NOS.
  3604.  
  3605.           Suppose that we sish to handle bulletins @JUNK. We are to deposit
  3606.           them  locally in the junk area, and also forward to BBS g4bki. We
  3607.           also know that we generally receive @JUNK bulletins from g4amj, a
  3608.           local BBS which handles much bulletin traffic.
  3609.           alias:
  3610.           rewrite:
  3611.           *@junk   junk
  3612.  
  3613.           forward:
  3614.           g4bki
  3615.           ax25 ax1 g4bki
  3616.           g4bki
  3617.           junk
  3618.           ----------
  3619.           g4amj
  3620.           ax25 ax1 g4amj
  3621.           g4amj
  3622.           junk
  3623.           ----------
  3624.  
  3625.  
  3626.  
  3627.  
  3628.                                                           May 28, 1991
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.                                      - 56 -
  3635.  
  3636.  
  3637.           All  incoming  @JUNK  traffic  is written to the junk area (which
  3638.           should be an explicit entry in the /spool/areas file). Each  tick
  3639.           of  the  mailbox  timer,  NOS scans the junk area for traffic not
  3640.           forwarded to g4bki or g4amj and attempts to  deliver  unforwarded
  3641.           bulletins.  Usually,  g4amj will respond with a "Have it" message
  3642.           and the bulletin will  not  be  forwarded.  Any  bulletins  @JUNK
  3643.           deposited  locally  by  users  will automatically be sent to both
  3644.           g4bki and g4amj.
  3645.  
  3646.           13.  Questions and Answers
  3647.           Q. Under what circumstances does NOS request  reverse  forwarding
  3648.           from a BBS?
  3649.  
  3650.           A.  NOS  requests a reverse forward after completing any forwards
  3651.           of its own to the BBS. If no traffic was queued for a given  BBS,
  3652.           then no connection is attempted, so no reverse forward request is
  3653.           issued.
  3654.  
  3655.           Q. What kinds of message types does the NOS mbox support?
  3656.  
  3657.           A. Basically, NOS supports all two letter commands starting  with
  3658.           an "S". If the mailbox has not received an SID banner (the "[NET-
  3659.           H$]") from a connected station, then an SF command  will  send  a
  3660.           followup  to  the  address  specified on the command line. The SR
  3661.           command will send a reply to the current message.  One  can  also
  3662.           issue  the command "SR <number>", where <number> is the number of
  3663.           the message to which you want to  generate  a  reply.  All  other
  3664.           variations  cause  an  X-BBS-Msg-Type:  header to be added to the
  3665.           message. When a message with such a line is forwarded to  a  BBS,
  3666.           it  is  sent  to the BBS with the appropriate message type as the
  3667.           second letter in the "S" command to the BBS.
  3668.  
  3669.           If NOS has received a valid SID, then ALL S commands are  handled
  3670.           by the X-BBS-Msg-Type: mechanism outlined above.
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685.  
  3686.  
  3687.  
  3688.  
  3689.  
  3690.  
  3691.  
  3692.  
  3693.  
  3694.                                                           May 28, 1991
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.                                      - 57 -
  3701.  
  3702.  
  3703.           14.  Logic map of the mailbox
  3704.  
  3705.   ============== AX.25 === NET/ROM === Ethernet === Loopback =================
  3706.          |                   |                   |                   |
  3707.          |                   |                   |                   |
  3708.   +--------------+    +--------------+    +--------------+    +--------------+
  3709.   |              |    |              |    |              |    |              |
  3710.   |   Mailbox    |    | SMTP client  |    | SMTP server  |    | BBS Forward  |
  3711.   |              |    |              |    |              |    |              |
  3712.   +--------------+    +--------------+    +--------------+    +--------------+
  3713.          |                   ^                   |                   ^
  3714.          |                   |                   |                   |
  3715.          v                   |                   v                   |
  3716.   +--------------+    +--------------+    +--------------+    +--------------+
  3717.   |              |    |              |    |              |    |              |
  3718.   | Add RFC822   |    | Use MX or A  |    | Add Received |    | Add own R:   |
  3719.   | header suite |    | type records |    | line         |  +>| line         |
  3720.   |              |    |              |    |              |  | |              |
  3721.   +--------------+    +--------------+    +--------------+  | +--------------+
  3722.          |                   ^                   |          |        ^
  3723.          |                   |                   |          |        |
  3724.          v                   |                   v          |        |
  3725.   +--------------+    +--------------+    +--------------+  | +--------------+
  3726.   |              |    |              |    |              |  | |              |
  3727.   | Get Rewrite  |    | Use optional |    | Apply Rewrite|  | | Strip RFC822 |
  3728.   | file address |    | SMTP gateway |    | file address |  | | header suite |
  3729.   |              |    |              |    |              |  | |              |
  3730.   +--------------+    +--------------+    +--------------+  | +--------------+
  3731.          |                   ^                   |          |        ^
  3732.          |                   |                   |          |        | Yes
  3733.          v                   |                   v          |        |
  3734.   +--------------+           |            +--------------+  | +--------------+
  3735.   |              |   No      |            |              |  | |              |
  3736.   | Local addr?  |-------+   |            | Alias file   |  +-| Any R: lines?|
  3737.   |              |       |   |            |              | No |              |
  3738.   +--------------+       |   |            +--------------+    +--------------+
  3739.          |               |   |                |  |  |                ^
  3740.          | Yes           |   |                |  |  |                |
  3741.          v               |   |                v  v  v                |
  3742.   +--------------+       v   |            +--------------+    +--------------+
  3743.   |              |    +--------------+    |              |    |              |
  3744.   | Apply Rewrite|    |              | No | Local        |Yes | /spool/mail/ |
  3745.   | file address |--->| SMTP queue   |<---| address?     |--->| directory    |
  3746.   |              |    |              |    |              |    |              |
  3747.   +--------------+    +--------------+    +--------------+    +--------------+
  3748.  
  3749.           15.  Credits
  3750.           Several  people have contributed to this manual. I would particu-
  3751.           larly like to thank Bill Simpson and Michael  Westerhof,  KA9WSB,
  3752.           for  their  significant editorial contributions to this document.
  3753.           Deborah Swanberg wrote the original  BOOTP  documentation,.   and
  3754.           G4AMJ/NQ0I and SM0RGV contributed the section on mail forwarding.
  3755.           Although I am the primary author of this software  package,  many
  3756.           others  have  contributed  substantial additions and refinements.
  3757.  
  3758.  
  3759.  
  3760.                                                           May 28, 1991
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.                                      - 58 -
  3767.  
  3768.  
  3769.           Here is a partial list; additions and  corrections  are  welcome.
  3770.           See  the  individual  source code files for additional authorship
  3771.           details.
  3772.  
  3773.           15.1.  ARCNET
  3774.           Written by Russ Nelson of Clarkson University.
  3775.  
  3776.           15.2.  Autodialer
  3777.           Bill Simpson substantially rewrote my original version  and  cre-
  3778.           ated a much improved control file format.
  3779.  
  3780.           15.3.  Bootstrap Protocol (BOOTP)
  3781.           Written by Deborah Swanberg of the University of Michigan.
  3782.  
  3783.           15.4.  Domain resolver
  3784.           Bill  Simpson  substantially extended my original version, adding
  3785.           record caching and automatic expiration.
  3786.  
  3787.           15.5.  DRSI driver
  3788.           Written by Stu Phillips, N6TTO.
  3789.  
  3790.           15.6.  Eagle 8530 board driver
  3791.           Written by Art Goldman, WA3CVG, and Richard Bisbey, NG6Q.
  3792.  
  3793.           15.7.  HAPN 8273 HDLC board driver
  3794.           Written by Jon Bloom, KE3Z, with fixes by John Tanner, VK2ZXQ.
  3795.  
  3796.           15.8.  Hop Check utility
  3797.           Written by Katie Stevens of UC Davis; enhancements by Bill  Simp-
  3798.           son.
  3799.  
  3800.           15.9.  Mailbox server & SMTP
  3801.           My  original,  primitive  SMTP  server  was  vastly  enhanced and
  3802.           expanded by Bdale Garbee, N3EUA and  Dave  Trulli,  NN2Z.  Anders
  3803.           Klemets,  SM0RGV,  wrote  the  first  "mailbox"  specifically for
  3804.           AX.25; he then expanded it into a full-blown bulletin board  sys-
  3805.           tem and integrated it with the SMTP facilities.
  3806.  
  3807.           15.10.  NET/ROM
  3808.           The  original  NET/ROM  code  was done by Dan Frank, W9NK. It was
  3809.           ported to the NOS platform by Anders Klemets, SM0RGV.
  3810.  
  3811.           15.11.  Netnews Transfer Protocol (NNTP)
  3812.           Written by Anders Klements, SM0RGV, with help from  Bernie  Roehl
  3813.           and Gerard Van Der Grinten, PA0GRI.
  3814.  
  3815.           15.12.  Packet Drivers
  3816.           Although  not  really  part  of this package, the Clarkson Packet
  3817.           Driver Collection by Russ Nelson of Clarkson University has enor-
  3818.           mously enhanced the utility of this package by allowing it to use
  3819.           virtually every PC Ethernet controller board on the market.
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.                                                           May 28, 1991
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.                                      - 59 -
  3833.  
  3834.  
  3835.           15.13.  PI 8530 DMA HDLC driver
  3836.           Written by Dave Perry, VE3IFB.
  3837.  
  3838.           15.14.  Post Office Protocol (POP)
  3839.           Originally authored by Mike Stockett, WA7DYX. Updates and modifi-
  3840.           cations  by  Allen  Gwinn, N5CKP, Gerard Van Der Grinten, PA0GRI,
  3841.           and Mark Edwards, WA6SMN.
  3842.  
  3843.           15.15.  Point to Point Protocol (PPP)
  3844.           Written by Katie Stevens of  UC  Davis,  based  on  the  original
  3845.           implementation  by  Drew  Perkins of CMU. Updated by Bill Simpson
  3846.           and Glenn McGregor of the University of Michigan.
  3847.  
  3848.           15.16.  Routing Information Protocol (RIP)
  3849.           Original (pre-NOS) version written by Al Broscious N3FCT.
  3850.  
  3851.           15.17.  SCC - Generic 8530 driver
  3852.           Originally written for the old "NET" code by Rob Janssen, PE1CHL.
  3853.           Ported to NOS by Ken Mitchum, KY3B.
  3854.  
  3855.           15.18.  Socket-level stream compression
  3856.           Written by Anders Klemets, SM0RGV
  3857.  
  3858.           15.19.  TCP/IP Header Compression
  3859.           Adapted  from  Van Jacobson's original BSD UNIX implementation by
  3860.           Katie Stevens of UC Davis. Updated by Bill Simpson.
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891.  
  3892.                                                           May 28, 1991
  3893.  
  3894.  
  3895.  
  3896.